# !/usr/bin/env python
# encoding: utf-8


"""
  @author: gaogao
  @file:
  @time: 2022/3/18 10:13
  @desc:获取插损值程序
"""
import time
import numpy as np
from matplotlib import pyplot as plt
from scipy.interpolate import make_interp_spline
from scipy.signal import savgol_filter
from ATS.util.save_data_2_ini import save_data_2_ini
from ATS.hardwarescan import conf_file_manager
from ATS.application.LASER_App.N7744C_App import N7744C_App
from ATS.application.LASER_App.L8164B_App import L8164B_App
from ATS.application.LASER_App.N7786C_App import N7786C_App
from ATS.util.calcu_step_util import get_step_list
from ATS.switchdriver.LightSwitchDriver import LightSwitchDriver

name = "SS2"
n7744c_app = N7744C_App(name)

name = "SS3"
l8164b_app = L8164B_App(name)

name = "SS1"
n7786c_app = N7786C_App(name)

# points = 10000
start_wave = 1243
stop_wave = 1377
step_wave = 0.1


# x1_data = [1243.0, 1243.1, 1243.2, 1243.3, 1243.4, 1243.5, 1243.6, 1243.7, 1243.8, 1243.9, 1244.0, 1244.1, 1244.2, 1244.3, 1244.4, 1244.5, 1244.6, 1244.7, 1244.8, 1244.9, 1245.0, 1245.1, 1245.2, 1245.3, 1245.4, 1245.5, 1245.6, 1245.7, 1245.8, 1245.9, 1246.0, 1246.1, 1246.2, 1246.3, 1246.4, 1246.5, 1246.6, 1246.7, 1246.8, 1246.9, 1247.0, 1247.1, 1247.2, 1247.3, 1247.4, 1247.5, 1247.6, 1247.7, 1247.8, 1247.9, 1248.0, 1248.1, 1248.2, 1248.3, 1248.4, 1248.5, 1248.6, 1248.7, 1248.8, 1248.9, 1249.0, 1249.1, 1249.2, 1249.3, 1249.4, 1249.5, 1249.6, 1249.7, 1249.8, 1249.9, 1250.0, 1250.1, 1250.2, 1250.3, 1250.4, 1250.5, 1250.6, 1250.7, 1250.8, 1250.9, 1251.0, 1251.1, 1251.2, 1251.3, 1251.4, 1251.5, 1251.6, 1251.7, 1251.8, 1251.9, 1252.0, 1252.1, 1252.2, 1252.3, 1252.4, 1252.5, 1252.6, 1252.7, 1252.8, 1252.9, 1253.0, 1253.1, 1253.2, 1253.3, 1253.4, 1253.5, 1253.6, 1253.7, 1253.8, 1253.9, 1254.0, 1254.1, 1254.2, 1254.3, 1254.4, 1254.5, 1254.6, 1254.7, 1254.8, 1254.9, 1255.0, 1255.1, 1255.2, 1255.3, 1255.4, 1255.5, 1255.6, 1255.7, 1255.8, 1255.9, 1256.0, 1256.1, 1256.2, 1256.3, 1256.4, 1256.5, 1256.6, 1256.7, 1256.8, 1256.9, 1257.0, 1257.1, 1257.2, 1257.3, 1257.4, 1257.5, 1257.6, 1257.7, 1257.8, 1257.9, 1258.0, 1258.1, 1258.2, 1258.3, 1258.4, 1258.5, 1258.6, 1258.7, 1258.8, 1258.9, 1259.0, 1259.1, 1259.2, 1259.3, 1259.4, 1259.5, 1259.6, 1259.7, 1259.8, 1259.9, 1260.0, 1260.1, 1260.2, 1260.3, 1260.4, 1260.5, 1260.6, 1260.7, 1260.8, 1260.9, 1261.0, 1261.1, 1261.2, 1261.3, 1261.4, 1261.5, 1261.6, 1261.7, 1261.8, 1261.9, 1262.0, 1262.1, 1262.2, 1262.3, 1262.4, 1262.5, 1262.6, 1262.7, 1262.8, 1262.9, 1263.0, 1263.1, 1263.2, 1263.3, 1263.4, 1263.5, 1263.6, 1263.7, 1263.8, 1263.9, 1264.0, 1264.1, 1264.2, 1264.3, 1264.4, 1264.5, 1264.6, 1264.7, 1264.8, 1264.9, 1265.0, 1265.1, 1265.2, 1265.3, 1265.4, 1265.5, 1265.6, 1265.7, 1265.8, 1265.9, 1266.0, 1266.1, 1266.2, 1266.3, 1266.4, 1266.5, 1266.6, 1266.7, 1266.8, 1266.9, 1267.0, 1267.1, 1267.2, 1267.3, 1267.4, 1267.5, 1267.6, 1267.7, 1267.8, 1267.9, 1268.0, 1268.1, 1268.2, 1268.3, 1268.4, 1268.5, 1268.6, 1268.7, 1268.8, 1268.9, 1269.0, 1269.1, 1269.2, 1269.3, 1269.4, 1269.5, 1269.6, 1269.7, 1269.8, 1269.9, 1270.0, 1270.1, 1270.2, 1270.3, 1270.4, 1270.5, 1270.6, 1270.7, 1270.8, 1270.9, 1271.0, 1271.1, 1271.2, 1271.3, 1271.4, 1271.5, 1271.6, 1271.7, 1271.8, 1271.9, 1272.0, 1272.1, 1272.2, 1272.3, 1272.4, 1272.5, 1272.6, 1272.7, 1272.8, 1272.9, 1273.0, 1273.1, 1273.2, 1273.3, 1273.4, 1273.5, 1273.6, 1273.7, 1273.8, 1273.9, 1274.0, 1274.1, 1274.2, 1274.3, 1274.4, 1274.5, 1274.6, 1274.7, 1274.8, 1274.9, 1275.0, 1275.1, 1275.2, 1275.3, 1275.4, 1275.5, 1275.6, 1275.7, 1275.8, 1275.9, 1276.0, 1276.1, 1276.2, 1276.3, 1276.4, 1276.5, 1276.6, 1276.7, 1276.8, 1276.9, 1277.0, 1277.1, 1277.2, 1277.3, 1277.4, 1277.5, 1277.6, 1277.7, 1277.8, 1277.9, 1278.0, 1278.1, 1278.2, 1278.3, 1278.4, 1278.5, 1278.6, 1278.7, 1278.8, 1278.9, 1279.0, 1279.1, 1279.2, 1279.3, 1279.4, 1279.5, 1279.6, 1279.7, 1279.8, 1279.9, 1280.0, 1280.1, 1280.2, 1280.3, 1280.4, 1280.5, 1280.6, 1280.7, 1280.8, 1280.9, 1281.0, 1281.1, 1281.2, 1281.3, 1281.4, 1281.5, 1281.6, 1281.7, 1281.8, 1281.9, 1282.0, 1282.1, 1282.2, 1282.3, 1282.4, 1282.5, 1282.6, 1282.7, 1282.8, 1282.9, 1283.0, 1283.1, 1283.2, 1283.3, 1283.4, 1283.5, 1283.6, 1283.7, 1283.8, 1283.9, 1284.0, 1284.1, 1284.2, 1284.3, 1284.4, 1284.5, 1284.6, 1284.7, 1284.8, 1284.9, 1285.0, 1285.1, 1285.2, 1285.3, 1285.4, 1285.5, 1285.6, 1285.7, 1285.8, 1285.9, 1286.0, 1286.1, 1286.2, 1286.3, 1286.4, 1286.5, 1286.6, 1286.7, 1286.8, 1286.9, 1287.0, 1287.1, 1287.2, 1287.3, 1287.4, 1287.5, 1287.6, 1287.7, 1287.8, 1287.9, 1288.0, 1288.1, 1288.2, 1288.3, 1288.4, 1288.5, 1288.6, 1288.7, 1288.8, 1288.9, 1289.0, 1289.1, 1289.2, 1289.3, 1289.4, 1289.5, 1289.6, 1289.7, 1289.8, 1289.9, 1290.0, 1290.1, 1290.2, 1290.3, 1290.4, 1290.5, 1290.6, 1290.7, 1290.8, 1290.9, 1291.0, 1291.1, 1291.2, 1291.3, 1291.4, 1291.5, 1291.6, 1291.7, 1291.8, 1291.9, 1292.0, 1292.1, 1292.2, 1292.3, 1292.4, 1292.5, 1292.6, 1292.7, 1292.8, 1292.9, 1293.0, 1293.1, 1293.2, 1293.3, 1293.4, 1293.5, 1293.6, 1293.7, 1293.8, 1293.9, 1294.0, 1294.1, 1294.2, 1294.3, 1294.4, 1294.5, 1294.6, 1294.7, 1294.8, 1294.9, 1295.0, 1295.1, 1295.2, 1295.3, 1295.4, 1295.5, 1295.6, 1295.7, 1295.8, 1295.9, 1296.0, 1296.1, 1296.2, 1296.3, 1296.4, 1296.5, 1296.6, 1296.7, 1296.8, 1296.9, 1297.0, 1297.1, 1297.2, 1297.3, 1297.4, 1297.5, 1297.6, 1297.7, 1297.8, 1297.9, 1298.0, 1298.1, 1298.2, 1298.3, 1298.4, 1298.5, 1298.6, 1298.7, 1298.8, 1298.9, 1299.0, 1299.1, 1299.2, 1299.3, 1299.4, 1299.5, 1299.6, 1299.7, 1299.8, 1299.9, 1300.0, 1300.1, 1300.2, 1300.3, 1300.4, 1300.5, 1300.6, 1300.7, 1300.8, 1300.9, 1301.0, 1301.1, 1301.2, 1301.3, 1301.4, 1301.5, 1301.6, 1301.7, 1301.8, 1301.9, 1302.0, 1302.1, 1302.2, 1302.3, 1302.4, 1302.5, 1302.6, 1302.7, 1302.8, 1302.9, 1303.0, 1303.1, 1303.2, 1303.3, 1303.4, 1303.5, 1303.6, 1303.7, 1303.8, 1303.9, 1304.0, 1304.1, 1304.2, 1304.3, 1304.4, 1304.5, 1304.6, 1304.7, 1304.8, 1304.9, 1305.0, 1305.1, 1305.2, 1305.3, 1305.4, 1305.5, 1305.6, 1305.7, 1305.8, 1305.9, 1306.0, 1306.1, 1306.2, 1306.3, 1306.4, 1306.5, 1306.6, 1306.7, 1306.8, 1306.9, 1307.0, 1307.1, 1307.2, 1307.3, 1307.4, 1307.5, 1307.6, 1307.7, 1307.8, 1307.9, 1308.0, 1308.1, 1308.2, 1308.3, 1308.4, 1308.5, 1308.6, 1308.7, 1308.8, 1308.9, 1309.0, 1309.1, 1309.2, 1309.3, 1309.4, 1309.5, 1309.6, 1309.7, 1309.8, 1309.9, 1310.0, 1310.1, 1310.2, 1310.3, 1310.4, 1310.5, 1310.6, 1310.7, 1310.8, 1310.9, 1311.0, 1311.1, 1311.2, 1311.3, 1311.4, 1311.5, 1311.6, 1311.7, 1311.8, 1311.9, 1312.0, 1312.1, 1312.2, 1312.3, 1312.4, 1312.5, 1312.6, 1312.7, 1312.8, 1312.9, 1313.0, 1313.1, 1313.2, 1313.3, 1313.4, 1313.5, 1313.6, 1313.7, 1313.8, 1313.9, 1314.0, 1314.1, 1314.2, 1314.3, 1314.4, 1314.5, 1314.6, 1314.7, 1314.8, 1314.9, 1315.0, 1315.1, 1315.2, 1315.3, 1315.4, 1315.5, 1315.6, 1315.7, 1315.8, 1315.9, 1316.0, 1316.1, 1316.2, 1316.3, 1316.4, 1316.5, 1316.6, 1316.7, 1316.8, 1316.9, 1317.0, 1317.1, 1317.2, 1317.3, 1317.4, 1317.5, 1317.6, 1317.7, 1317.8, 1317.9, 1318.0, 1318.1, 1318.2, 1318.3, 1318.4, 1318.5, 1318.6, 1318.7, 1318.8, 1318.9, 1319.0, 1319.1, 1319.2, 1319.3, 1319.4, 1319.5, 1319.6, 1319.7, 1319.8, 1319.9, 1320.0, 1320.1, 1320.2, 1320.3, 1320.4, 1320.5, 1320.6, 1320.7, 1320.8, 1320.9, 1321.0, 1321.1, 1321.2, 1321.3, 1321.4, 1321.5, 1321.6, 1321.7, 1321.8, 1321.9, 1322.0, 1322.1, 1322.2, 1322.3, 1322.4, 1322.5, 1322.6, 1322.7, 1322.8, 1322.9, 1323.0, 1323.1, 1323.2, 1323.3, 1323.4, 1323.5, 1323.6, 1323.7, 1323.8, 1323.9, 1324.0, 1324.1, 1324.2, 1324.3, 1324.4, 1324.5, 1324.6, 1324.7, 1324.8, 1324.9, 1325.0, 1325.1, 1325.2, 1325.3, 1325.4, 1325.5, 1325.6, 1325.7, 1325.8, 1325.9, 1326.0, 1326.1, 1326.2, 1326.3, 1326.4, 1326.5, 1326.6, 1326.7, 1326.8, 1326.9, 1327.0, 1327.1, 1327.2, 1327.3, 1327.4, 1327.5, 1327.6, 1327.7, 1327.8, 1327.9, 1328.0, 1328.1, 1328.2, 1328.3, 1328.4, 1328.5, 1328.6, 1328.7, 1328.8, 1328.9, 1329.0, 1329.1, 1329.2, 1329.3, 1329.4, 1329.5, 1329.6, 1329.7, 1329.8, 1329.9, 1330.0, 1330.1, 1330.2, 1330.3, 1330.4, 1330.5, 1330.6, 1330.7, 1330.8, 1330.9, 1331.0, 1331.1, 1331.2, 1331.3, 1331.4, 1331.5, 1331.6, 1331.7, 1331.8, 1331.9, 1332.0, 1332.1, 1332.2, 1332.3, 1332.4, 1332.5, 1332.6, 1332.7, 1332.8, 1332.9, 1333.0, 1333.1, 1333.2, 1333.3, 1333.4, 1333.5, 1333.6, 1333.7, 1333.8, 1333.9, 1334.0, 1334.1, 1334.2, 1334.3, 1334.4, 1334.5, 1334.6, 1334.7, 1334.8, 1334.9, 1335.0, 1335.1, 1335.2, 1335.3, 1335.4, 1335.5, 1335.6, 1335.7, 1335.8, 1335.9, 1336.0, 1336.1, 1336.2, 1336.3, 1336.4, 1336.5, 1336.6, 1336.7, 1336.8, 1336.9, 1337.0, 1337.1, 1337.2, 1337.3, 1337.4, 1337.5, 1337.6, 1337.7, 1337.8, 1337.9, 1338.0, 1338.1, 1338.2, 1338.3, 1338.4, 1338.5, 1338.6, 1338.7, 1338.8, 1338.9, 1339.0, 1339.1, 1339.2, 1339.3, 1339.4, 1339.5, 1339.6, 1339.7, 1339.8, 1339.9, 1340.0, 1340.1, 1340.2, 1340.3, 1340.4, 1340.5, 1340.6, 1340.7, 1340.8, 1340.9, 1341.0, 1341.1, 1341.2, 1341.3, 1341.4, 1341.5, 1341.6, 1341.7, 1341.8, 1341.9, 1342.0, 1342.1, 1342.2, 1342.3, 1342.4, 1342.5, 1342.6, 1342.7, 1342.8, 1342.9, 1343.0, 1343.1, 1343.2, 1343.3, 1343.4, 1343.5, 1343.6, 1343.7, 1343.8, 1343.9, 1344.0, 1344.1, 1344.2, 1344.3, 1344.4, 1344.5, 1344.6, 1344.7, 1344.8, 1344.9, 1345.0, 1345.1, 1345.2, 1345.3, 1345.4, 1345.5, 1345.6, 1345.7, 1345.8, 1345.9, 1346.0, 1346.1, 1346.2, 1346.3, 1346.4, 1346.5, 1346.6, 1346.7, 1346.8, 1346.9, 1347.0, 1347.1, 1347.2, 1347.3, 1347.4, 1347.5, 1347.6, 1347.7, 1347.8, 1347.9, 1348.0, 1348.1, 1348.2, 1348.3, 1348.4, 1348.5, 1348.6, 1348.7, 1348.8, 1348.9, 1349.0, 1349.1, 1349.2, 1349.3, 1349.4, 1349.5, 1349.6, 1349.7, 1349.8, 1349.9, 1350.0, 1350.1, 1350.2, 1350.3, 1350.4, 1350.5, 1350.6, 1350.7, 1350.8, 1350.9, 1351.0, 1351.1, 1351.2, 1351.3, 1351.4, 1351.5, 1351.6, 1351.7, 1351.8, 1351.9, 1352.0, 1352.1, 1352.2, 1352.3, 1352.4, 1352.5, 1352.6, 1352.7, 1352.8, 1352.9, 1353.0, 1353.1, 1353.2, 1353.3, 1353.4, 1353.5, 1353.6, 1353.7, 1353.8, 1353.9, 1354.0, 1354.1, 1354.2, 1354.3, 1354.4, 1354.5, 1354.6, 1354.7, 1354.8, 1354.9, 1355.0, 1355.1, 1355.2, 1355.3, 1355.4, 1355.5, 1355.6, 1355.7, 1355.8, 1355.9, 1356.0, 1356.1, 1356.2, 1356.3, 1356.4, 1356.5, 1356.6, 1356.7, 1356.8, 1356.9, 1357.0, 1357.1, 1357.2, 1357.3, 1357.4, 1357.5, 1357.6, 1357.7, 1357.8, 1357.9, 1358.0, 1358.1, 1358.2, 1358.3, 1358.4, 1358.5, 1358.6, 1358.7, 1358.8, 1358.9, 1359.0, 1359.1, 1359.2, 1359.3, 1359.4, 1359.5, 1359.6, 1359.7, 1359.8, 1359.9, 1360.0, 1360.1, 1360.2, 1360.3, 1360.4, 1360.5, 1360.6, 1360.7, 1360.8, 1360.9, 1361.0, 1361.1, 1361.2, 1361.3, 1361.4, 1361.5, 1361.6, 1361.7, 1361.8, 1361.9, 1362.0, 1362.1, 1362.2, 1362.3, 1362.4, 1362.5, 1362.6, 1362.7, 1362.8, 1362.9, 1363.0, 1363.1, 1363.2, 1363.3, 1363.4, 1363.5, 1363.6, 1363.7, 1363.8, 1363.9, 1364.0, 1364.1, 1364.2, 1364.3, 1364.4, 1364.5, 1364.6, 1364.7, 1364.8, 1364.9, 1365.0, 1365.1, 1365.2, 1365.3, 1365.4, 1365.5, 1365.6, 1365.7, 1365.8, 1365.9, 1366.0, 1366.1, 1366.2, 1366.3, 1366.4, 1366.5, 1366.6, 1366.7, 1366.8, 1366.9, 1367.0, 1367.1, 1367.2, 1367.3, 1367.4, 1367.5, 1367.6, 1367.7, 1367.8, 1367.9, 1368.0, 1368.1, 1368.2, 1368.3, 1368.4, 1368.5, 1368.6, 1368.7, 1368.8, 1368.9, 1369.0, 1369.1, 1369.2, 1369.3, 1369.4, 1369.5, 1369.6, 1369.7, 1369.8, 1369.9, 1370.0, 1370.1, 1370.2, 1370.3, 1370.4, 1370.5, 1370.6, 1370.7, 1370.8, 1370.9, 1371.0, 1371.1, 1371.2, 1371.3, 1371.4, 1371.5, 1371.6, 1371.7, 1371.8, 1371.9, 1372.0, 1372.1, 1372.2, 1372.3, 1372.4, 1372.5, 1372.6, 1372.7, 1372.8, 1372.9, 1373.0, 1373.1, 1373.2, 1373.3, 1373.4, 1373.5, 1373.6, 1373.7, 1373.8, 1373.9, 1374.0, 1374.1, 1374.2, 1374.3, 1374.4, 1374.5, 1374.6, 1374.7, 1374.8, 1374.9, 1375.0, 1375.1, 1375.2, 1375.3, 1375.4, 1375.5, 1375.6, 1375.7, 1375.8, 1375.9, 1376.0, 1376.1, 1376.2, 1376.3, 1376.4, 1376.5, 1376.6, 1376.7, 1376.8, 1376.9, 1377.0]
# y1_data = [-4.185565948486328, -4.194892883300781, -4.195671081542969, -4.198444366455078, -4.200050354003906, -4.221767425537109, -4.222991943359375, -4.232837677001953, -4.241382598876953, -4.241676330566406, -4.236961364746094, -4.2302398681640625, -4.227104187011719, -4.222011566162109, -4.2213287353515625, -4.224555969238281, -4.232444763183594, -4.232006072998047, -4.240447998046875, -4.233329772949219, -4.231609344482422, -4.217559814453125, -4.226367950439453, -4.2213287353515625, -4.213504791259766, -4.211750030517578, -4.201362609863281, -4.196159362792969, -4.198150634765625, -4.184986114501953, -4.176311492919922, -4.184112548828125, -4.183383941650391, -4.1913909912109375, -4.190471649169922, -4.188819885253906, -4.161762237548828, -4.167751312255859, -4.165576934814453, -4.1718597412109375, -4.165092468261719, -4.156986236572266, -4.154289245605469, -4.141929626464844, -4.147308349609375, -4.145435333251953, -4.153228759765625, -4.155010223388672, -4.166351318359375, -4.160846710205078, -4.167507171630859, -4.16046142578125, -4.158481597900391, -4.147453308105469, -4.146060943603516, -4.147453308105469, -4.150676727294922, -4.154674530029297, -4.151447296142578, -4.159206390380859, -4.1526031494140625, -4.156841278076172, -4.163356781005859, -4.172779083251953, -4.152557373046875, -4.159542083740234, -4.151401519775391, -4.145530700683594, -4.129169464111328, -4.124958038330078, -4.114299774169922, -4.122516632080078, -4.1102447509765625, -4.1173095703125, -4.118217468261719, -4.0934906005859375, -4.091545104980469, -4.076377868652344, -4.073116302490234, -4.057212829589844, -4.05810546875, -4.031101226806641, -4.033535003662109, -4.019737243652344, -4.008449554443359, -4.0032806396484375, -3.996356964111328, -3.9976577758789062, -3.9858245849609375, -3.993244171142578, -3.9793434143066406, -3.9704246520996094, -3.9615211486816406, -3.9597702026367188, -3.943359375, -3.9481773376464844, -3.949462890625, -3.9281959533691406, -3.934741973876953, -3.922393798828125, -3.9349212646484375, -3.9249038696289062, -3.9349212646484375, -3.9300689697265625, -3.9451026916503906, -3.942302703857422, -3.935882568359375, -3.9175987243652344, -3.9153671264648438, -3.922435760498047, -3.91363525390625, -3.9189224243164062, -3.924266815185547, -3.934741973876953, -3.937763214111328, -3.9338226318359375, -3.9288368225097656, -3.9283790588378906, -3.9360694885253906, -3.934967041015625, -3.92266845703125, -3.9073944091796875, -3.901165008544922, -3.9031639099121094, -3.9030723571777344, -3.904754638671875, -3.912586212158203, -3.896484375, -3.9083938598632812, -3.8963966369628906, -3.896076202392578, -3.8832969665527344, -3.8763351440429688, -3.8537559509277344, -3.86212158203125, -3.8434295654296875, -3.8381385803222656, -3.8391265869140625, -3.8397979736328125, -3.8400230407714844, -3.8346023559570312, -3.843517303466797, -3.836841583251953, -3.8261070251464844, -3.816295623779297, -3.804901123046875, -3.7950897216796875, -3.7992591857910156, -3.790302276611328, -3.794292449951172, -3.7917633056640625, -3.8054351806640625, -3.8082809448242188, -3.8062782287597656, -3.8224029541015625, -3.814422607421875, -3.8181228637695312, -3.8178977966308594, -3.809436798095703, -3.81005859375, -3.805877685546875, -3.8133544921875, -3.815135955810547, -3.8322792053222656, -3.8372879028320312, -3.8515968322753906, -3.8590621948242188, -3.868885040283203, -3.865142822265625, -3.857666015625, -3.8640174865722656, -3.862842559814453, -3.867443084716797, -3.8562278747558594, -3.8676681518554688, -3.874073028564453, -3.8750228881835938, -3.8877334594726562, -3.8870086669921875, -3.8944435119628906, -3.8997535705566406, -3.898712158203125, -3.8868751525878906, -3.8923110961914062, -3.8799476623535156, -3.867351531982422, -3.8734893798828125, -3.8715896606445312, -3.8749313354492188, -3.8792266845703125, -3.8820724487304688, -3.8847007751464844, -3.8832969665527344, -3.8772354125976562, -3.8716812133789062, -3.870372772216797, -3.8632965087890625, -3.8523597717285156, -3.8515548706054688, -3.8490829467773438, -3.8404693603515625, -3.84796142578125, -3.848949432373047, -3.858386993408203, -3.8476905822753906, -3.854206085205078, -3.8569488525390625, -3.8629798889160156, -3.858295440673828, -3.855419158935547, -3.863971710205078, -3.85595703125, -3.870372772216797, -3.8684349060058594, -3.885334014892578, -3.8874168395996094, -3.897441864013672, -3.9085769653320312, -3.9099884033203125, -3.9115829467773438, -3.9192886352539062, -3.922576904296875, -3.9129486083984375, -3.9192886352539062, -3.9251327514648438, -3.929248809814453, -3.932403564453125, -3.9513473510742188, -3.954936981201172, -3.9547042846679688, -3.961383819580078, -3.9644699096679688, -3.9668235778808594, -3.9611968994140625, -3.959125518798828, -3.96295166015625, -3.9662208557128906, -3.9670562744140625, -3.9677467346191406, -3.976612091064453, -3.9698219299316406, -3.969867706298828, -3.965717315673828, -3.9679298400878906, -3.9646072387695312, -3.9643325805664062, -3.9641952514648438, -3.9509353637695312, -3.9501991271972656, -3.9456520080566406, -3.9439544677734375, -3.9311676025390625, -3.9231224060058594, -3.9152755737304688, -3.9160499572753906, -3.9048919677734375, -3.897441864013672, -3.898120880126953, -3.9004364013671875, -3.8944435119628906, -3.8935813903808594, -3.8894577026367188, -3.8849258422851562, -3.8857879638671875, -3.8785018920898438, -3.875518798828125, -3.8761978149414062, -3.871906280517578, -3.8707351684570312, -3.8708267211914062, -3.8806304931640625, -3.886554718017578, -3.8822555541992188, -3.877460479736328, -3.8863296508789062, -3.8689727783203125, -3.8737564086914062, -3.868389129638672, -3.8673973083496094, -3.8774185180664062, -3.8718643188476562, -3.871185302734375, -3.8737144470214844, -3.8756561279296875, -3.870464324951172, -3.867259979248047, -3.8728561401367188, -3.8625755310058594, -3.8551025390625, -3.847240447998047, -3.845447540283203, -3.8421707153320312, -3.8366165161132812, -3.8360366821289062, -3.8459854125976562, -3.831470489501953, -3.82861328125, -3.820709228515625, -3.816516876220703, -3.807880401611328, -3.800994873046875, -3.7808799743652344, -3.7746505737304688, -3.7752685546875, -3.76873779296875, -3.7641143798828125, -3.768299102783203, -3.7685203552246094, -3.7590103149414062, -3.757251739501953, -3.7429847717285156, -3.7320899963378906, -3.7270240783691406, -3.7138595581054688, -3.7117691040039062, -3.7100296020507812, -3.70416259765625, -3.700775146484375, -3.70477294921875, -3.7067718505859375, -3.7093772888183594, -3.7182579040527344, -3.7087669372558594, -3.7039871215820312, -3.697784423828125, -3.6876907348632812, -3.692626953125, -3.690765380859375, -3.693927764892578, -3.6976966857910156, -3.7006454467773438, -3.7127685546875, -3.711986541748047, -3.716686248779297, -3.7090721130371094, -3.7086830139160156, -3.710247039794922, -3.701862335205078, -3.705944061279297, -3.7022552490234375, -3.7040328979492188, -3.7103347778320312, -3.7120285034179688, -3.7145118713378906, -3.7173843383789062, -3.718128204345703, -3.7171249389648438, -3.7050743103027344, -3.6981735229492188, -3.6886444091796875, -3.683757781982422, -3.6789627075195312, -3.6769332885742188, -3.6761131286621094, -3.665943145751953, -3.668182373046875, -3.6649093627929688, -3.659404754638672, -3.6513290405273438, -3.6442604064941406, -3.624469757080078, -3.6207199096679688, -3.61578369140625, -3.6049880981445312, -3.6063461303710938, -3.604564666748047, -3.5982437133789062, -3.5981178283691406, -3.594684600830078, -3.5890121459960938, -3.587322235107422, -3.5819129943847656, -3.573688507080078, -3.5644683837890625, -3.5770645141601562, -3.5737342834472656, -3.5697708129882812, -3.5922698974609375, -3.5811538696289062, -3.595661163330078, -3.5903663635253906, -3.5890121459960938, -3.5888442993164062, -3.6041412353515625, -3.5996856689453125, -3.6012115478515625, -3.6176109313964844, -3.6100425720214844, -3.6302757263183594, -3.631214141845703, -3.634929656982422, -3.6505584716796875, -3.6511192321777344, -3.655750274658203, -3.673137664794922, -3.66839599609375, -3.677623748779297, -3.6771926879882812, -3.6973915100097656, -3.6903305053710938, -3.7091598510742188, -3.709247589111328, -3.720611572265625, -3.7206954956054688, -3.7175140380859375, -3.7290306091308594, -3.737773895263672, -3.738300323486328, -3.726715087890625, -3.7334442138671875, -3.7304306030273438, -3.727458953857422, -3.731304168701172, -3.7243614196777344, -3.721832275390625, -3.7219619750976562, -3.7189979553222656, -3.7186927795410156, -3.717906951904297, -3.7082901000976562, -3.7101593017578125, -3.70416259765625, -3.7090721130371094, -3.706684112548828, -3.703296661376953, -3.7064666748046875, -3.7009506225585938, -3.6880836486816406, -3.6947059631347656, -3.69366455078125, -3.690418243408203, -3.6840171813964844, -3.684967041015625, -3.6847076416015625, -3.6906776428222656, -3.6919784545898438, -3.6829795837402344, -3.685314178466797, -3.6873016357421875, -3.6911544799804688, -3.6867408752441406, -3.6877365112304688, -3.6839752197265625, -3.6876068115234375, -3.688385009765625, -3.6959190368652344, -3.6993026733398438, -3.7108116149902344, -3.711334228515625, -3.718647003173828, -3.71246337890625, -3.7250595092773438, -3.7154273986816406, -3.7215232849121094, -3.722137451171875, -3.7347564697265625, -3.7339248657226562, -3.7338829040527344, -3.7365074157714844, -3.7425498962402344, -3.7472381591796875, -3.7408828735351562, -3.7480735778808594, -3.752857208251953, -3.733837127685547, -3.7408409118652344, -3.7418899536132812, -3.7392654418945312, -3.7412757873535156, -3.7428131103515625, -3.7428131103515625, -3.7291641235351562, -3.737163543701172, -3.729686737060547, -3.7230072021484375, -3.721263885498047, -3.7148170471191406, -3.714466094970703, -3.703857421875, -3.705120086669922, -3.7063369750976562, -3.695354461669922, -3.6924972534179688, -3.6885986328125, -3.6942291259765625, -3.684101104736328, -3.690460205078125, -3.6758956909179688, -3.6781845092773438, -3.6665000915527344, -3.66693115234375, -3.6646499633789062, -3.6637916564941406, -3.661468505859375, -3.657428741455078, -3.6557960510253906, -3.658885955810547, -3.6421165466308594, -3.634929656982422, -3.642414093017578, -3.6354446411132812, -3.637409210205078, -3.6376686096191406, -3.6428871154785156, -3.642200469970703, -3.640361785888672, -3.6368980407714844, -3.6389923095703125, -3.6341629028320312, -3.626392364501953, -3.6263046264648438, -3.6294212341308594, -3.6330528259277344, -3.623279571533203, -3.623577117919922, -3.634288787841797, -3.6279678344726562, -3.628692626953125, -3.6247291564941406, -3.6221275329589844, -3.6106796264648438, -3.6203384399414062, -3.612079620361328, -3.611103057861328, -3.609020233154297, -3.614166259765625, -3.6081314086914062, -3.6058349609375, -3.5951499938964844, -3.5912551879882812, -3.5773582458496094, -3.5816612243652344, -3.5786209106445312, -3.5787925720214844, -3.567413330078125, -3.560352325439453, -3.5634193420410156, -3.5576629638671875, -3.54931640625, -3.5440826416015625, -3.5391845703125, -3.5263710021972656, -3.521453857421875, -3.529705047607422, -3.515838623046875, -3.5156288146972656, -3.51251220703125, -3.5042076110839844, -3.499897003173828, -3.4949684143066406, -3.4986953735351562, -3.488433837890625, -3.4807968139648438, -3.4850502014160156, -3.472309112548828, -3.4701271057128906, -3.4760971069335938, -3.4728012084960938, -3.4669189453125, -3.4728431701660156, -3.4694252014160156, -3.478076934814453, -3.4738311767578125, -3.4806747436523438, -3.4783248901367188, -3.4801368713378906, -3.4833984375, -3.4893875122070312, -3.484882354736328, -3.50433349609375, -3.5057029724121094, -3.501720428466797, -3.5119705200195312, -3.515880584716797, -3.5115966796875, -3.5194969177246094, -3.5318756103515625, -3.5251197814941406, -3.5270347595214844, -3.532085418701172, -3.5409011840820312, -3.53521728515625, -3.5358009338378906, -3.541027069091797, -3.5423660278320312, -3.547679901123047, -3.5556907653808594, -3.5543060302734375, -3.558757781982422, -3.556529998779297, -3.5653953552246094, -3.555103302001953, -3.555438995361328, -3.5589637756347656, -3.566234588623047, -3.555858612060547, -3.5625343322753906, -3.5619049072265625, -3.5653533935546875, -3.5565719604492188, -3.5630836486816406, -3.5619049072265625, -3.5705718994140625, -3.5542221069335938, -3.5490646362304688, -3.5569915771484375, -3.5535926818847656, -3.548309326171875, -3.5391845703125, -3.540985107421875, -3.5483932495117188, -3.5355491638183594, -3.538097381591797, -3.539562225341797, -3.5422821044921875, -3.542949676513672, -3.5362586975097656, -3.5341720581054688, -3.5369720458984375, -3.536052703857422, -3.5466346740722656, -3.542449951171875, -3.5391845703125, -3.540607452392578, -3.5479354858398438, -3.5464248657226562, -3.5523338317871094, -3.558544158935547, -3.5619049072265625, -3.566028594970703, -3.5635452270507812, -3.5762176513671875, -3.5763893127441406, -3.577739715576172, -3.581195831298828, -3.5827598571777344, -3.5890579223632812, -3.5993881225585938, -3.594432830810547, -3.6036720275878906, -3.61016845703125, -3.608043670654297, -3.6191864013671875, -3.628864288330078, -3.613697052001953, -3.6253662109375, -3.626476287841797, -3.626476287841797, -3.6277542114257812, -3.6419448852539062, -3.6429710388183594, -3.647815704345703, -3.6386070251464844, -3.6500015258789062, -3.6385650634765625, -3.6400184631347656, -3.6452407836914062, -3.6493568420410156, -3.6441307067871094, -3.6456260681152344, -3.6449432373046875, -3.6415176391601562, -3.6281394958496094, -3.633392333984375, -3.6375808715820312, -3.625194549560547, -3.6218299865722656, -3.6213607788085938, -3.6176528930664062, -3.6197853088378906, -3.6119117736816406, -3.607025146484375, -3.607830047607422, -3.602527618408203, -3.591381072998047, -3.5981178283691406, -3.587787628173828, -3.5899887084960938, -3.5782012939453125, -3.5763015747070312, -3.575756072998047, -3.567962646484375, -3.5601425170898438, -3.5618247985839844, -3.548603057861328, -3.5515365600585938, -3.5479354858398438, -3.5462989807128906, -3.545001983642578, -3.5439987182617188, -3.536468505859375, -3.544414520263672, -3.5437469482421875, -3.532085418701172, -3.546051025390625, -3.5294952392578125, -3.5331687927246094, -3.527790069580078, -3.531707763671875, -3.5280380249023438, -3.522747039794922, -3.5242042541503906, -3.521411895751953, -3.5151710510253906, -3.5244102478027344, -3.5170822143554688, -3.517292022705078, -3.527996063232422, -3.512554168701172, -3.514049530029297, -3.5113067626953125, -3.5122604370117188, -3.4986534118652344, -3.501636505126953, -3.505535125732422, -3.4992332458496094, -3.488147735595703, -3.4905853271484375, -3.5002288818359375, -3.4744491577148438, -3.4793548583984375, -3.4872817993164062, -3.4772911071777344, -3.476634979248047, -3.465892791748047, -3.4665069580078125, -3.4623565673828125, -3.4536170959472656, -3.4587440490722656, -3.452098846435547, -3.444976806640625, -3.4393310546875, -3.4316177368164062, -3.4294586181640625, -3.432514190673828, -3.431537628173828, -3.4245681762695312, -3.416515350341797, -3.4141159057617188, -3.4137916564941406, -3.404376983642578, -3.4093246459960938, -3.4003677368164062, -3.4083900451660156, -3.4022293090820312, -3.3984222412109375, -3.401336669921875, -3.4004058837890625, -3.392681121826172, -3.3862152099609375, -3.392719268798828, -3.3969650268554688, -3.388477325439453, -3.3957138061523438, -3.3962783813476562, -3.4004898071289062, -3.3892440795898438, -3.3933258056640625, -3.3902549743652344, -3.3921165466308594, -3.3951454162597656, -3.404460906982422, -3.4073753356933594, -3.41094970703125, -3.4138717651367188, -3.3985061645507812, -3.4167556762695312, -3.410907745361328, -3.4087982177734375, -3.411518096923828, -3.414642333984375, -3.4193992614746094, -3.415943145751953, -3.418060302734375, -3.4246902465820312, -3.4230194091796875, -3.4280319213867188, -3.4338607788085938, -3.4211082458496094, -3.416839599609375, -3.4214744567871094, -3.4248123168945312, -3.4243240356445312, -3.4226150512695312, -3.4218406677246094, -3.4220848083496094, -3.427745819091797, -3.4211883544921875, -3.417285919189453, -3.4236297607421875, -3.4123687744140625, -3.409770965576172, -3.418384552001953, -3.404052734375, -3.4085159301757812, -3.415618896484375, -3.410907745361328, -3.4021072387695312, -3.4088401794433594, -3.4097328186035156, -3.404254913330078, -3.397735595703125, -3.4024314880371094, -3.4059982299804688, -3.402027130126953, -3.4055519104003906, -3.4032020568847656, -3.4079055786132812, -3.407012939453125, -3.4031639099121094, -3.4051895141601562, -3.4082679748535156, -3.4130210876464844, -3.4205780029296875, -3.4142799377441406, -3.4141578674316406, -3.424121856689453, -3.4187469482421875, -3.4232254028320312, -3.426807403564453, -3.4281539916992188, -3.4341468811035156, -3.435291290283203, -3.4428482055664062, -3.4544754028320312, -3.457141876220703, -3.4527130126953125, -3.459278106689453, -3.4656028747558594, -3.469676971435547, -3.4742431640625, -3.4833984375, -3.4802627563476562, -3.4835205078125, -3.489635467529297, -3.498241424560547, -3.495136260986328, -3.482574462890625, -3.494556427001953, -3.4974937438964844, -3.4978675842285156, -3.49761962890625, -3.494640350341797, -3.504913330078125, -3.4978675842285156, -3.5058250427246094, -3.5036277770996094, -3.4943923950195312, -3.4949684143066406, -3.488933563232422, -3.487651824951172, -3.4889755249023438, -3.4912872314453125, -3.4802627563476562, -3.4777870178222656, -3.4815406799316406, -3.473957061767578, -3.4588661193847656, -3.4635887145996094, -3.455791473388672, -3.451812744140625, -3.4468994140625, -3.4421119689941406, -3.444690704345703, -3.428558349609375, -3.4213523864746094, -3.4251785278320312, -3.4097328186035156, -3.4127349853515625, -3.411396026611328, -3.407581329345703, -3.401256561279297, -3.394336700439453, -3.3828697204589844, -3.383514404296875, -3.372356414794922, -3.3736419677734375, -3.370746612548828, -3.3652801513671875, -3.3739662170410156, -3.3613853454589844, -3.346282958984375, -3.3532066345214844, -3.3484039306640625, -3.3469619750976562, -3.344684600830078, -3.3458023071289062, -3.3434829711914062, -3.3496055603027344, -3.332744598388672, -3.3436813354492188, -3.3416061401367188, -3.339447021484375, -3.3250579833984375, -3.333545684814453, -3.329479217529297, -3.3312301635742188, -3.333904266357422, -3.3338623046875, -3.3273658752441406, -3.32708740234375, -3.3371734619140625, -3.3268089294433594, -3.333385467529297, -3.3352584838867188, -3.3334617614746094, -3.334259033203125, -3.3320274353027344, -3.3382911682128906, -3.324779510498047, -3.3288002014160156, -3.3313522338867188, -3.3273277282714844, -3.3214759826660156, -3.3306350708007812, -3.3229904174804688, -3.3196487426757812, -3.3219947814941406, -3.3164291381835938, -3.3167495727539062, -3.3175430297851562, -3.3209991455078125, -3.3056793212890625, -3.3063926696777344, -3.3060379028320312, -3.3131370544433594, -3.311389923095703, -3.2905731201171875, -3.3049278259277344, -3.2966575622558594, -3.3014450073242188, -3.3008079528808594, -3.2934951782226562, -3.2912025451660156, -3.3005752563476562, -3.287731170654297, -3.2917556762695312, -3.299304962158203, -3.2932968139648438, -3.3019981384277344, -3.3013648986816406, -3.2963027954101562, -3.3019180297851562, -3.2980003356933594, -3.297607421875, -3.3016014099121094, -3.297882080078125, -3.3009300231933594, -3.305797576904297, -3.29962158203125, -3.3050460815429688, -3.3048477172851562, -3.3072662353515625, -3.3112716674804688, -3.3144454956054688, -3.309406280517578, -3.31671142578125, -3.3092880249023438, -3.3215980529785156, -3.323986053466797, -3.3205642700195312, -3.334259033203125, -3.329479217529297, -3.3359756469726562, -3.336254119873047, -3.337932586669922, -3.3414878845214844, -3.350963592529297, -3.3484420776367188, -3.3423233032226562, -3.349163055419922, -3.355449676513672, -3.3557701110839844, -3.3583755493164062, -3.365764617919922, -3.3665237426757812, -3.3678512573242188, -3.3678932189941406, -3.3717117309570312, -3.375774383544922, -3.368938446044922, -3.3773880004882812, -3.3767433166503906, -3.369701385498047, -3.379199981689453, -3.3891639709472656, -3.3826255798339844, -3.3806114196777344, -3.379924774169922, -3.3881568908691406, -3.381092071533203, -3.3890419006347656, -3.3862152099609375, -3.3846054077148438, -3.3846435546875, -3.3831520080566406, -3.3806495666503906, -3.394458770751953, -3.3816604614257812, -3.39239501953125, -3.3907012939453125, -3.391265869140625, -3.3953895568847656, -3.3862991333007812, -3.402069091796875, -3.396564483642578, -3.392719268798828, -3.3935279846191406, -3.406970977783203, -3.4015426635742188, -3.4006500244140625, -3.396076202392578, -3.4039306640625, -3.4073753356933594, -3.4086380004882812, -3.4006500244140625, -3.4059600830078125, -3.39923095703125, -3.407623291015625, -3.4118423461914062, -3.3995590209960938, -3.4104232788085938, -3.4122886657714844, -3.4030799865722656, -3.4096107482910156, -3.4091224670410156, -3.4125328063964844, -3.406768798828125, -3.4188690185546875, -3.414073944091797, -3.410625457763672, -3.4202537536621094, -3.4127769470214844, -3.4130592346191406, -3.417083740234375, -3.4176101684570312, -3.4201316833496094, -3.4177322387695312, -3.4204559326171875, -3.4053497314453125, -3.414928436279297, -3.41094970703125, -3.404052734375, -3.3989524841308594, -3.4022293090820312, -3.4032020568847656, -3.396442413330078, -3.3924789428710938, -3.38702392578125, -3.3819007873535156, -3.3851661682128906, -3.372516632080078, -3.3719139099121094, -3.3691787719726562, -3.3677711486816406, -3.3539276123046875, -3.363269805908203, -3.34112548828125, -3.3458824157714844, -3.336456298828125, -3.3378524780273438, -3.3352203369140625, -3.3256568908691406, -3.3144454956054688, -3.306713104248047, -3.3144874572753906, -3.2969322204589844, -3.3028297424316406, -3.2953109741210938, -3.286426544189453, -3.283233642578125, -3.2828025817871094, -3.2796897888183594, -3.2719764709472656, -3.2981605529785156, -3.269184112548828, -3.2599258422851562, -3.2567481994628906, -3.2569847106933594, -3.257221221923828, -3.2549095153808594, -3.247631072998047, -3.24005126953125, -3.2431373596191406, -3.2376327514648438, -3.2366981506347656, -3.239543914794922, -3.2329940795898438, -3.2234230041503906, -3.2315940856933594, -3.2325668334960938, -3.229022979736328, -3.2276611328125, -3.2298812866210938, -3.2274246215820312, -3.2396621704101562, -3.232837677001953, -3.2307357788085938, -3.23919677734375, -3.2404823303222656, -3.239818572998047, -3.2511520385742188, -3.241809844970703, -3.2475929260253906, -3.2423171997070312, -3.2488021850585938, -3.255260467529297, -3.268909454345703, -3.2630233764648438, -3.2623558044433594, -3.2646713256835938, -3.281421661376953, -3.275043487548828, -3.2805938720703125, -3.2815399169921875, -3.287731170654297, -3.2929000854492188, -3.302906036376953, -3.3039779663085938, -3.3027114868164062, -3.3095664978027344, -3.2999000549316406, -3.309326171875, -3.3124618530273438, -3.3118667602539062, -3.30548095703125, -3.3242225646972656, -3.327564239501953, -3.3440017700195312, -3.3250198364257812, -3.340007781982422, -3.3456802368164062, -3.3398895263671875, -3.349761962890625, -3.347400665283203, -3.3476829528808594, -3.353485107421875, -3.363433837890625, -3.3607826232910156, -3.3642349243164062, -3.366241455078125, -3.3900527954101562, -3.3783950805664062, -3.3761367797851562, -3.3806915283203125, -3.3840370178222656, -3.3874664306640625, -3.3998794555664062, -3.4024734497070312, -3.4009742736816406, -3.402515411376953, -3.4027557373046875, -3.4116783142089844, -3.4094886779785156, -3.4243240356445312, -3.409038543701172, -3.4105453491210938, -3.415821075439453, -3.435413360595703, -3.428234100341797, -3.426239013671875, -3.435699462890625, -3.4441986083984375, -3.4344749450683594, -3.4370040893554688, -3.4565696716308594, -3.4466552734375, -3.4223709106445312, -3.4536170959472656, -3.4443206787109375, -3.4510765075683594, -3.4454269409179688, -3.453125, -3.436717987060547, -3.452960968017578, -3.4439125061035156, -3.4490280151367188, -3.448944091796875, -3.4767990112304688, -3.4346389770507812, -3.44329833984375, -3.434967041015625, -3.4429702758789062, -3.4341087341308594, -3.4373741149902344, -3.4372520446777344, -3.4347610473632812, -3.425586700439453, -3.4220848083496094, -3.449726104736328, -3.448944091796875, -3.4215965270996094, -3.4187889099121094, -3.427257537841797, -3.2058067321777344, -3.4030799865722656, -3.3944969177246094, -3.41094970703125, -3.427173614501953, -3.404460906982422, -3.395793914794922, -3.3879127502441406, -3.3937301635742188, -3.4035263061523438, -3.3881568908691406, -3.3643569946289062, -3.3658828735351562, -3.3628692626953125, -3.3584976196289062, -3.3572158813476562, -3.3597412109375, -3.35040283203125, -3.361347198486328, -3.3372535705566406, -3.341766357421875, -3.3375320434570312, -3.3921165466308594, -3.3146438598632812, -3.310558319091797, -3.3126182556152344, -3.320323944091797, -3.3180999755859375, -3.322948455810547, -3.3103981018066406, -3.299346923828125, -3.308216094970703, -3.296539306640625, -3.3033828735351562, -3.299663543701172, -3.2980804443359375, -3.29266357421875, -3.3031845092773438, -3.2945213317871094, -3.2939300537109375, -3.2921104431152344, -3.2961044311523438, -3.294403076171875, -3.287494659423828, -3.2989120483398438, -3.319610595703125, -3.2948760986328125, -3.293415069580078, -3.285442352294922, -3.2946014404296875, -3.291400909423828, -3.301837921142578, -3.2855987548828125, -3.289783477783203, -3.304767608642578, -3.2912826538085938, -3.2800827026367188, -3.2986717224121094, -3.302867889404297, -3.3009681701660156, -3.300018310546875, -3.3079795837402344, -3.267730712890625, -3.3023147583007812, -3.301563262939453, -3.315357208251953, -3.309326171875, -3.3546104431152344, -3.29962158203125, -3.312419891357422, -3.297565460205078, -3.3000564575195312, -3.3595008850097656, -3.3215980529785156, -3.339488983154297, -3.3641128540039062, -3.3060379028320312, -3.3356170654296875, -3.3477210998535156, -3.3550491333007812, -3.3609046936035156, -3.36737060546875, -3.3622703552246094, -3.3716697692871094, -3.371227264404297, -3.39239501953125, -3.3973312377929688, -3.4173240661621094, -3.4007301330566406, -3.356170654296875, -3.41046142578125, -3.4246902465820312, -3.4239158630371094, -3.451648712158203, -3.4394569396972656, -3.4390487670898438, -3.458415985107422, -3.3955917358398438, -3.474079132080078, -3.135028839111328, -3.4874420166015625, -3.4886436462402344, -3.509563446044922, -3.516376495361328, -3.5256614685058594, -3.544414520263672, -3.539813995361328, -3.555103302001953, -3.5641746520996094, -3.5702781677246094, -3.61395263671875, -3.5893096923828125, -3.600616455078125, -3.6222572326660156, -3.6199951171875, -3.6395912170410156, -3.643787384033203, -3.6604347229003906, -3.6774940490722656, -3.6810340881347656, -3.7039031982421875, -3.702381134033203, -3.7092018127441406, -3.731739044189453, -3.7438621520996094, -3.7639808654785156, -3.7635841369628906, -3.770061492919922, -3.7821617126464844, -3.7984161376953125, -3.7997055053710938, -3.815357208251953, -3.828388214111328, -3.836437225341797, -3.860729217529297, -3.8822097778320312, -3.868793487548828, -3.8804931640625, -3.8865127563476562, -3.9064369201660156, -3.9087600708007812, -3.920063018798828, -3.9354705810546875, -3.9487762451171875, -3.942485809326172, -3.9585723876953125, -3.9669151306152344]
def oo_dembedding_test(start_wave=1243, stop_wave=1377, step_wave=0.1, wave_length=1310, n7744_power_range=0):
    global result
    light_inst = LightSwitchDriver()
    if light_inst.is_connected:
        light_inst.set_all_switch("01", "05")
        time.sleep(1)
    else:
        light_inst.connect()
    x_data = get_step_list(start_wave, stop_wave, step_wave)
    points = len(x_data)
    # l8164b_app.cls()
    l8164b_app.set_power_unit()
    l8164b_app.set_power_value(0)
    l8164b_app.set_sweep_mode()
    l8164b_app.query_sweep_pmax(start_wave, stop_wave)
    l8164b_app.set_repeat_mode()
    l8164b_app.set_wave_sweep_speed()
    l8164b_app.set_start_stop_step_wave(start_wave, stop_wave, step_wave)
    l8164b_app.trigger_config()
    l8164b_app.trigger_output()
    l8164b_app.trigger_input()
    l8164b_app.output_on()
    l8164b_app.set_wave_sweep_state()

    # n7744c_app.reset()
    n7744c_app.set_power_unit()
    n7744c_app.set_power_range(n7744_power_range)
    n7744c_app.set_auto_gain()
    n7744c_app.trigger_input_mode()
    n7744c_app.set_power_wave_length(wave_length)
    n7744c_app.set_logging_points(points)
    n7744c_app.set_logging_state()
    n7744c_app.tigger_status()
    while True:
        state = n7744c_app.get_func_state()
        if state == "LOGGING_STABILITY,COMPLETE":
            result = n7744c_app.get_func_res()
            break
    n7786c_app.stop_logging_polcontroller()
    n7786c_app.set_stabilization_mode(0)
    l8164b_app.stop_sweep()
    return x_data, result


def plot_curve(x_data, y_data):
    plt.figure(figsize=(20, 8), dpi=80)
    fig, ax = plt.subplots()
    ax.plot(x_data, y_data, "g")
    ax.set_xlabel("WaveLength")
    ax.set_ylabel("Value")
    ax.grid(True)
    # ax.legend()
    plt.show()


# x_data, y_data = oo_dembedding_test()
x_data = [1243.0, 1243.1, 1243.2, 1243.3, 1243.4, 1243.5, 1243.6, 1243.7, 1243.8, 1243.9, 1244.0, 1244.1, 1244.2,
          1244.3, 1244.4, 1244.5, 1244.6, 1244.7, 1244.8, 1244.9, 1245.0, 1245.1, 1245.2, 1245.3, 1245.4, 1245.5,
          1245.6, 1245.7, 1245.8, 1245.9, 1246.0, 1246.1, 1246.2, 1246.3, 1246.4, 1246.5, 1246.6, 1246.7, 1246.8,
          1246.9, 1247.0, 1247.1, 1247.2, 1247.3, 1247.4, 1247.5, 1247.6, 1247.7, 1247.8, 1247.9, 1248.0, 1248.1,
          1248.2, 1248.3, 1248.4, 1248.5, 1248.6, 1248.7, 1248.8, 1248.9, 1249.0, 1249.1, 1249.2, 1249.3, 1249.4,
          1249.5, 1249.6, 1249.7, 1249.8, 1249.9, 1250.0, 1250.1, 1250.2, 1250.3, 1250.4, 1250.5, 1250.6, 1250.7,
          1250.8, 1250.9, 1251.0, 1251.1, 1251.2, 1251.3, 1251.4, 1251.5, 1251.6, 1251.7, 1251.8, 1251.9, 1252.0,
          1252.1, 1252.2, 1252.3, 1252.4, 1252.5, 1252.6, 1252.7, 1252.8, 1252.9, 1253.0, 1253.1, 1253.2, 1253.3,
          1253.4, 1253.5, 1253.6, 1253.7, 1253.8, 1253.9, 1254.0, 1254.1, 1254.2, 1254.3, 1254.4, 1254.5, 1254.6,
          1254.7, 1254.8, 1254.9, 1255.0, 1255.1, 1255.2, 1255.3, 1255.4, 1255.5, 1255.6, 1255.7, 1255.8, 1255.9,
          1256.0, 1256.1, 1256.2, 1256.3, 1256.4, 1256.5, 1256.6, 1256.7, 1256.8, 1256.9, 1257.0, 1257.1, 1257.2,
          1257.3, 1257.4, 1257.5, 1257.6, 1257.7, 1257.8, 1257.9, 1258.0, 1258.1, 1258.2, 1258.3, 1258.4, 1258.5,
          1258.6, 1258.7, 1258.8, 1258.9, 1259.0, 1259.1, 1259.2, 1259.3, 1259.4, 1259.5, 1259.6, 1259.7, 1259.8,
          1259.9, 1260.0, 1260.1, 1260.2, 1260.3, 1260.4, 1260.5, 1260.6, 1260.7, 1260.8, 1260.9, 1261.0, 1261.1,
          1261.2, 1261.3, 1261.4, 1261.5, 1261.6, 1261.7, 1261.8, 1261.9, 1262.0, 1262.1, 1262.2, 1262.3, 1262.4,
          1262.5, 1262.6, 1262.7, 1262.8, 1262.9, 1263.0, 1263.1, 1263.2, 1263.3, 1263.4, 1263.5, 1263.6, 1263.7,
          1263.8, 1263.9, 1264.0, 1264.1, 1264.2, 1264.3, 1264.4, 1264.5, 1264.6, 1264.7, 1264.8, 1264.9, 1265.0,
          1265.1, 1265.2, 1265.3, 1265.4, 1265.5, 1265.6, 1265.7, 1265.8, 1265.9, 1266.0, 1266.1, 1266.2, 1266.3,
          1266.4, 1266.5, 1266.6, 1266.7, 1266.8, 1266.9, 1267.0, 1267.1, 1267.2, 1267.3, 1267.4, 1267.5, 1267.6,
          1267.7, 1267.8, 1267.9, 1268.0, 1268.1, 1268.2, 1268.3, 1268.4, 1268.5, 1268.6, 1268.7, 1268.8, 1268.9,
          1269.0, 1269.1, 1269.2, 1269.3, 1269.4, 1269.5, 1269.6, 1269.7, 1269.8, 1269.9, 1270.0, 1270.1, 1270.2,
          1270.3, 1270.4, 1270.5, 1270.6, 1270.7, 1270.8, 1270.9, 1271.0, 1271.1, 1271.2, 1271.3, 1271.4, 1271.5,
          1271.6, 1271.7, 1271.8, 1271.9, 1272.0, 1272.1, 1272.2, 1272.3, 1272.4, 1272.5, 1272.6, 1272.7, 1272.8,
          1272.9, 1273.0, 1273.1, 1273.2, 1273.3, 1273.4, 1273.5, 1273.6, 1273.7, 1273.8, 1273.9, 1274.0, 1274.1,
          1274.2, 1274.3, 1274.4, 1274.5, 1274.6, 1274.7, 1274.8, 1274.9, 1275.0, 1275.1, 1275.2, 1275.3, 1275.4,
          1275.5, 1275.6, 1275.7, 1275.8, 1275.9, 1276.0, 1276.1, 1276.2, 1276.3, 1276.4, 1276.5, 1276.6, 1276.7,
          1276.8, 1276.9, 1277.0, 1277.1, 1277.2, 1277.3, 1277.4, 1277.5, 1277.6, 1277.7, 1277.8, 1277.9, 1278.0,
          1278.1, 1278.2, 1278.3, 1278.4, 1278.5, 1278.6, 1278.7, 1278.8, 1278.9, 1279.0, 1279.1, 1279.2, 1279.3,
          1279.4, 1279.5, 1279.6, 1279.7, 1279.8, 1279.9, 1280.0, 1280.1, 1280.2, 1280.3, 1280.4, 1280.5, 1280.6,
          1280.7, 1280.8, 1280.9, 1281.0, 1281.1, 1281.2, 1281.3, 1281.4, 1281.5, 1281.6, 1281.7, 1281.8, 1281.9,
          1282.0, 1282.1, 1282.2, 1282.3, 1282.4, 1282.5, 1282.6, 1282.7, 1282.8, 1282.9, 1283.0, 1283.1, 1283.2,
          1283.3, 1283.4, 1283.5, 1283.6, 1283.7, 1283.8, 1283.9, 1284.0, 1284.1, 1284.2, 1284.3, 1284.4, 1284.5,
          1284.6, 1284.7, 1284.8, 1284.9, 1285.0, 1285.1, 1285.2, 1285.3, 1285.4, 1285.5, 1285.6, 1285.7, 1285.8,
          1285.9, 1286.0, 1286.1, 1286.2, 1286.3, 1286.4, 1286.5, 1286.6, 1286.7, 1286.8, 1286.9, 1287.0, 1287.1,
          1287.2, 1287.3, 1287.4, 1287.5, 1287.6, 1287.7, 1287.8, 1287.9, 1288.0, 1288.1, 1288.2, 1288.3, 1288.4,
          1288.5, 1288.6, 1288.7, 1288.8, 1288.9, 1289.0, 1289.1, 1289.2, 1289.3, 1289.4, 1289.5, 1289.6, 1289.7,
          1289.8, 1289.9, 1290.0, 1290.1, 1290.2, 1290.3, 1290.4, 1290.5, 1290.6, 1290.7, 1290.8, 1290.9, 1291.0,
          1291.1, 1291.2, 1291.3, 1291.4, 1291.5, 1291.6, 1291.7, 1291.8, 1291.9, 1292.0, 1292.1, 1292.2, 1292.3,
          1292.4, 1292.5, 1292.6, 1292.7, 1292.8, 1292.9, 1293.0, 1293.1, 1293.2, 1293.3, 1293.4, 1293.5, 1293.6,
          1293.7, 1293.8, 1293.9, 1294.0, 1294.1, 1294.2, 1294.3, 1294.4, 1294.5, 1294.6, 1294.7, 1294.8, 1294.9,
          1295.0, 1295.1, 1295.2, 1295.3, 1295.4, 1295.5, 1295.6, 1295.7, 1295.8, 1295.9, 1296.0, 1296.1, 1296.2,
          1296.3, 1296.4, 1296.5, 1296.6, 1296.7, 1296.8, 1296.9, 1297.0, 1297.1, 1297.2, 1297.3, 1297.4, 1297.5,
          1297.6, 1297.7, 1297.8, 1297.9, 1298.0, 1298.1, 1298.2, 1298.3, 1298.4, 1298.5, 1298.6, 1298.7, 1298.8,
          1298.9, 1299.0, 1299.1, 1299.2, 1299.3, 1299.4, 1299.5, 1299.6, 1299.7, 1299.8, 1299.9, 1300.0, 1300.1,
          1300.2, 1300.3, 1300.4, 1300.5, 1300.6, 1300.7, 1300.8, 1300.9, 1301.0, 1301.1, 1301.2, 1301.3, 1301.4,
          1301.5, 1301.6, 1301.7, 1301.8, 1301.9, 1302.0, 1302.1, 1302.2, 1302.3, 1302.4, 1302.5, 1302.6, 1302.7,
          1302.8, 1302.9, 1303.0, 1303.1, 1303.2, 1303.3, 1303.4, 1303.5, 1303.6, 1303.7, 1303.8, 1303.9, 1304.0,
          1304.1, 1304.2, 1304.3, 1304.4, 1304.5, 1304.6, 1304.7, 1304.8, 1304.9, 1305.0, 1305.1, 1305.2, 1305.3,
          1305.4, 1305.5, 1305.6, 1305.7, 1305.8, 1305.9, 1306.0, 1306.1, 1306.2, 1306.3, 1306.4, 1306.5, 1306.6,
          1306.7, 1306.8, 1306.9, 1307.0, 1307.1, 1307.2, 1307.3, 1307.4, 1307.5, 1307.6, 1307.7, 1307.8, 1307.9,
          1308.0, 1308.1, 1308.2, 1308.3, 1308.4, 1308.5, 1308.6, 1308.7, 1308.8, 1308.9, 1309.0, 1309.1, 1309.2,
          1309.3, 1309.4, 1309.5, 1309.6, 1309.7, 1309.8, 1309.9, 1310.0, 1310.1, 1310.2, 1310.3, 1310.4, 1310.5,
          1310.6, 1310.7, 1310.8, 1310.9, 1311.0, 1311.1, 1311.2, 1311.3, 1311.4, 1311.5, 1311.6, 1311.7, 1311.8,
          1311.9, 1312.0, 1312.1, 1312.2, 1312.3, 1312.4, 1312.5, 1312.6, 1312.7, 1312.8, 1312.9, 1313.0, 1313.1,
          1313.2, 1313.3, 1313.4, 1313.5, 1313.6, 1313.7, 1313.8, 1313.9, 1314.0, 1314.1, 1314.2, 1314.3, 1314.4,
          1314.5, 1314.6, 1314.7, 1314.8, 1314.9, 1315.0, 1315.1, 1315.2, 1315.3, 1315.4, 1315.5, 1315.6, 1315.7,
          1315.8, 1315.9, 1316.0, 1316.1, 1316.2, 1316.3, 1316.4, 1316.5, 1316.6, 1316.7, 1316.8, 1316.9, 1317.0,
          1317.1, 1317.2, 1317.3, 1317.4, 1317.5, 1317.6, 1317.7, 1317.8, 1317.9, 1318.0, 1318.1, 1318.2, 1318.3,
          1318.4, 1318.5, 1318.6, 1318.7, 1318.8, 1318.9, 1319.0, 1319.1, 1319.2, 1319.3, 1319.4, 1319.5, 1319.6,
          1319.7, 1319.8, 1319.9, 1320.0, 1320.1, 1320.2, 1320.3, 1320.4, 1320.5, 1320.6, 1320.7, 1320.8, 1320.9,
          1321.0, 1321.1, 1321.2, 1321.3, 1321.4, 1321.5, 1321.6, 1321.7, 1321.8, 1321.9, 1322.0, 1322.1, 1322.2,
          1322.3, 1322.4, 1322.5, 1322.6, 1322.7, 1322.8, 1322.9, 1323.0, 1323.1, 1323.2, 1323.3, 1323.4, 1323.5,
          1323.6, 1323.7, 1323.8, 1323.9, 1324.0, 1324.1, 1324.2, 1324.3, 1324.4, 1324.5, 1324.6, 1324.7, 1324.8,
          1324.9, 1325.0, 1325.1, 1325.2, 1325.3, 1325.4, 1325.5, 1325.6, 1325.7, 1325.8, 1325.9, 1326.0, 1326.1,
          1326.2, 1326.3, 1326.4, 1326.5, 1326.6, 1326.7, 1326.8, 1326.9, 1327.0, 1327.1, 1327.2, 1327.3, 1327.4,
          1327.5, 1327.6, 1327.7, 1327.8, 1327.9, 1328.0, 1328.1, 1328.2, 1328.3, 1328.4, 1328.5, 1328.6, 1328.7,
          1328.8, 1328.9, 1329.0, 1329.1, 1329.2, 1329.3, 1329.4, 1329.5, 1329.6, 1329.7, 1329.8, 1329.9, 1330.0,
          1330.1, 1330.2, 1330.3, 1330.4, 1330.5, 1330.6, 1330.7, 1330.8, 1330.9, 1331.0, 1331.1, 1331.2, 1331.3,
          1331.4, 1331.5, 1331.6, 1331.7, 1331.8, 1331.9, 1332.0, 1332.1, 1332.2, 1332.3, 1332.4, 1332.5, 1332.6,
          1332.7, 1332.8, 1332.9, 1333.0, 1333.1, 1333.2, 1333.3, 1333.4, 1333.5, 1333.6, 1333.7, 1333.8, 1333.9,
          1334.0, 1334.1, 1334.2, 1334.3, 1334.4, 1334.5, 1334.6, 1334.7, 1334.8, 1334.9, 1335.0, 1335.1, 1335.2,
          1335.3, 1335.4, 1335.5, 1335.6, 1335.7, 1335.8, 1335.9, 1336.0, 1336.1, 1336.2, 1336.3, 1336.4, 1336.5,
          1336.6, 1336.7, 1336.8, 1336.9, 1337.0, 1337.1, 1337.2, 1337.3, 1337.4, 1337.5, 1337.6, 1337.7, 1337.8,
          1337.9, 1338.0, 1338.1, 1338.2, 1338.3, 1338.4, 1338.5, 1338.6, 1338.7, 1338.8, 1338.9, 1339.0, 1339.1,
          1339.2, 1339.3, 1339.4, 1339.5, 1339.6, 1339.7, 1339.8, 1339.9, 1340.0, 1340.1, 1340.2, 1340.3, 1340.4,
          1340.5, 1340.6, 1340.7, 1340.8, 1340.9, 1341.0, 1341.1, 1341.2, 1341.3, 1341.4, 1341.5, 1341.6, 1341.7,
          1341.8, 1341.9, 1342.0, 1342.1, 1342.2, 1342.3, 1342.4, 1342.5, 1342.6, 1342.7, 1342.8, 1342.9, 1343.0,
          1343.1, 1343.2, 1343.3, 1343.4, 1343.5, 1343.6, 1343.7, 1343.8, 1343.9, 1344.0, 1344.1, 1344.2, 1344.3,
          1344.4, 1344.5, 1344.6, 1344.7, 1344.8, 1344.9, 1345.0, 1345.1, 1345.2, 1345.3, 1345.4, 1345.5, 1345.6,
          1345.7, 1345.8, 1345.9, 1346.0, 1346.1, 1346.2, 1346.3, 1346.4, 1346.5, 1346.6, 1346.7, 1346.8, 1346.9,
          1347.0, 1347.1, 1347.2, 1347.3, 1347.4, 1347.5, 1347.6, 1347.7, 1347.8, 1347.9, 1348.0, 1348.1, 1348.2,
          1348.3, 1348.4, 1348.5, 1348.6, 1348.7, 1348.8, 1348.9, 1349.0, 1349.1, 1349.2, 1349.3, 1349.4, 1349.5,
          1349.6, 1349.7, 1349.8, 1349.9, 1350.0, 1350.1, 1350.2, 1350.3, 1350.4, 1350.5, 1350.6, 1350.7, 1350.8,
          1350.9, 1351.0, 1351.1, 1351.2, 1351.3, 1351.4, 1351.5, 1351.6, 1351.7, 1351.8, 1351.9, 1352.0, 1352.1,
          1352.2, 1352.3, 1352.4, 1352.5, 1352.6, 1352.7, 1352.8, 1352.9, 1353.0, 1353.1, 1353.2, 1353.3, 1353.4,
          1353.5, 1353.6, 1353.7, 1353.8, 1353.9, 1354.0, 1354.1, 1354.2, 1354.3, 1354.4, 1354.5, 1354.6, 1354.7,
          1354.8, 1354.9, 1355.0, 1355.1, 1355.2, 1355.3, 1355.4, 1355.5, 1355.6, 1355.7, 1355.8, 1355.9, 1356.0,
          1356.1, 1356.2, 1356.3, 1356.4, 1356.5, 1356.6, 1356.7, 1356.8, 1356.9, 1357.0, 1357.1, 1357.2, 1357.3,
          1357.4, 1357.5, 1357.6, 1357.7, 1357.8, 1357.9, 1358.0, 1358.1, 1358.2, 1358.3, 1358.4, 1358.5, 1358.6,
          1358.7, 1358.8, 1358.9, 1359.0, 1359.1, 1359.2, 1359.3, 1359.4, 1359.5, 1359.6, 1359.7, 1359.8, 1359.9,
          1360.0, 1360.1, 1360.2, 1360.3, 1360.4, 1360.5, 1360.6, 1360.7, 1360.8, 1360.9, 1361.0, 1361.1, 1361.2,
          1361.3, 1361.4, 1361.5, 1361.6, 1361.7, 1361.8, 1361.9, 1362.0, 1362.1, 1362.2, 1362.3, 1362.4, 1362.5,
          1362.6, 1362.7, 1362.8, 1362.9, 1363.0, 1363.1, 1363.2, 1363.3, 1363.4, 1363.5, 1363.6, 1363.7, 1363.8,
          1363.9, 1364.0, 1364.1, 1364.2, 1364.3, 1364.4, 1364.5, 1364.6, 1364.7, 1364.8, 1364.9, 1365.0, 1365.1,
          1365.2, 1365.3, 1365.4, 1365.5, 1365.6, 1365.7, 1365.8, 1365.9, 1366.0, 1366.1, 1366.2, 1366.3, 1366.4,
          1366.5, 1366.6, 1366.7, 1366.8, 1366.9, 1367.0, 1367.1, 1367.2, 1367.3, 1367.4, 1367.5, 1367.6, 1367.7,
          1367.8, 1367.9, 1368.0, 1368.1, 1368.2, 1368.3, 1368.4, 1368.5, 1368.6, 1368.7, 1368.8, 1368.9, 1369.0,
          1369.1, 1369.2, 1369.3, 1369.4, 1369.5, 1369.6, 1369.7, 1369.8, 1369.9, 1370.0, 1370.1, 1370.2, 1370.3,
          1370.4, 1370.5, 1370.6, 1370.7, 1370.8, 1370.9, 1371.0, 1371.1, 1371.2, 1371.3, 1371.4, 1371.5, 1371.6,
          1371.7, 1371.8, 1371.9, 1372.0, 1372.1, 1372.2, 1372.3, 1372.4, 1372.5, 1372.6, 1372.7, 1372.8, 1372.9,
          1373.0, 1373.1, 1373.2, 1373.3, 1373.4, 1373.5, 1373.6, 1373.7, 1373.8, 1373.9, 1374.0, 1374.1, 1374.2,
          1374.3, 1374.4, 1374.5, 1374.6, 1374.7, 1374.8, 1374.9, 1375.0, 1375.1, 1375.2, 1375.3, 1375.4, 1375.5,
          1375.6, 1375.7, 1375.8, 1375.9, 1376.0, 1376.1, 1376.2, 1376.3, 1376.4, 1376.5, 1376.6, 1376.7, 1376.8,
          1376.9, 1377.0]
y_data = [-3.9174461364746094, -3.9240493774414062, -3.9207801818847656, -3.9275436401367188, -3.9207725524902344,
          -3.924663543701172, -3.912151336669922, -3.9134521484375, -3.900238037109375, -3.901599884033203,
          -3.888416290283203, -3.8861923217773438, -3.876598358154297, -3.8766937255859375, -3.8722076416015625,
          -3.8699378967285156, -3.8691635131835938, -3.8655242919921875, -3.8687210083007812, -3.8610916137695312,
          -3.8628692626953125, -3.853008270263672, -3.8540992736816406, -3.8452072143554688, -3.851409912109375,
          -3.8453636169433594, -3.8516578674316406, -3.847808837890625, -3.8568878173828125, -3.8562088012695312,
          -3.8598899841308594, -3.8651275634765625, -3.8654403686523438, -3.8707313537597656, -3.8657150268554688,
          -3.8708724975585938, -3.863109588623047, -3.868946075439453, -3.8614120483398438, -3.8688201904296875,
          -3.8634681701660156, -3.868663787841797, -3.8646469116210938, -3.8710365295410156, -3.8731765747070312,
          -3.876605987548828, -3.8807144165039062, -3.8794479370117188, -3.883129119873047, -3.8803024291992188,
          -3.8860511779785156, -3.878753662109375, -3.8847923278808594, -3.8784637451171875, -3.883960723876953,
          -3.880878448486328, -3.8879165649414062, -3.8885650634765625, -3.8961944580078125, -3.8996925354003906,
          -3.903430938720703, -3.907085418701172, -3.9061622619628906, -3.912883758544922, -3.9066848754882812,
          -3.9115066528320312, -3.905670166015625, -3.9091758728027344, -3.9042892456054688, -3.9120941162109375,
          -3.9125595092773438, -3.918426513671875, -3.9205055236816406, -3.925811767578125, -3.9292335510253906,
          -3.9301223754882812, -3.9343185424804688, -3.93145751953125, -3.9360084533691406, -3.9339523315429688,
          -3.94036865234375, -3.9376754760742188, -3.9467811584472656, -3.947307586669922, -3.9568862915039062,
          -3.9626426696777344, -3.9703903198242188, -3.9776268005371094, -3.982501983642578, -3.9896507263183594,
          -3.989093780517578, -3.9973983764648438, -3.9937705993652344, -4.002094268798828, -4.000221252441406,
          -4.007457733154297, -4.006031036376953, -4.014556884765625, -4.0174407958984375, -4.021781921386719,
          -4.027961730957031, -4.0296783447265625, -4.034431457519531, -4.031505584716797, -4.034915924072266,
          -4.026935577392578, -4.029140472412109, -4.022144317626953, -4.023975372314453, -4.021465301513672,
          -4.023563385009766, -4.024265289306641, -4.028125762939453, -4.029994964599609, -4.0313262939453125,
          -4.035579681396484, -4.0330963134765625, -4.038539886474609, -4.0350189208984375, -4.038242340087891,
          -4.035182952880859, -4.039035797119141, -4.038455963134766, -4.043674468994141, -4.04705810546875,
          -4.049495697021484, -4.054962158203125, -4.054424285888672, -4.059955596923828, -4.057140350341797,
          -4.059364318847656, -4.054073333740234, -4.057659149169922, -4.052497863769531, -4.055545806884766,
          -4.05426025390625, -4.055511474609375, -4.060138702392578, -4.061042785644531, -4.068870544433594,
          -4.065788269042969, -4.07244873046875, -4.0702667236328125, -4.074424743652344, -4.072643280029297,
          -4.075103759765625, -4.074703216552734, -4.0783233642578125, -4.080036163330078, -4.080303192138672,
          -4.086448669433594, -4.086174011230469, -4.093769073486328, -4.0915985107421875, -4.096538543701172,
          -4.094539642333984, -4.095977783203125, -4.093433380126953, -4.089359283447266, -4.087978363037109,
          -4.081230163574219, -4.0813140869140625, -4.074993133544922, -4.073936462402344, -4.066745758056641,
          -4.0666351318359375, -4.059040069580078, -4.0561065673828125, -4.048912048339844, -4.041961669921875,
          -4.037570953369141, -4.02850341796875, -4.025333404541016, -4.015026092529297, -4.014991760253906,
          -4.009029388427734, -4.00909423828125, -4.004920959472656, -4.002952575683594, -4.000820159912109,
          -3.9971694946289062, -3.995281219482422, -3.9881439208984375, -3.985301971435547, -3.9772872924804688,
          -3.9753379821777344, -3.965984344482422, -3.9647560119628906, -3.9570884704589844, -3.9551773071289062,
          -3.951007843017578, -3.9471473693847656, -3.944549560546875, -3.9368667602539062, -3.93597412109375,
          -3.926898956298828, -3.9260940551757812, -3.917217254638672, -3.915924072265625, -3.9110794067382812,
          -3.9080657958984375, -3.906543731689453, -3.9021759033203125, -3.904491424560547, -3.8992843627929688,
          -3.9013404846191406, -3.8946266174316406, -3.893463134765625, -3.8891677856445312, -3.88604736328125,
          -3.8821029663085938, -3.8770828247070312, -3.8763504028320312, -3.870006561279297, -3.8713226318359375,
          -3.864948272705078, -3.864635467529297, -3.859619140625, -3.857067108154297, -3.8516616821289062,
          -3.8454360961914062, -3.8412628173828125, -3.833301544189453, -3.830455780029297, -3.8209571838378906,
          -3.818195343017578, -3.811687469482422, -3.8105735778808594, -3.8058090209960938, -3.8027114868164062,
          -3.7992172241210938, -3.7951393127441406, -3.7909774780273438, -3.78411865234375, -3.7811431884765625,
          -3.7736282348632812, -3.7705917358398438, -3.765056610107422, -3.7619857788085938, -3.7593765258789062,
          -3.755725860595703, -3.7554092407226562, -3.74896240234375, -3.7477073669433594, -3.738658905029297,
          -3.737316131591797, -3.7285118103027344, -3.72503662109375, -3.717479705810547, -3.7124290466308594,
          -3.7084312438964844, -3.7038497924804688, -3.704212188720703, -3.6989288330078125, -3.700733184814453,
          -3.6943206787109375, -3.69439697265625, -3.6886062622070312, -3.6862640380859375, -3.683246612548828,
          -3.6786651611328125, -3.677013397216797, -3.6725997924804688, -3.673583984375, -3.670429229736328,
          -3.67144775390625, -3.6704063415527344, -3.6686782836914062, -3.6683349609375, -3.6645774841308594,
          -3.6630706787109375, -3.6563453674316406, -3.656494140625, -3.6497344970703125, -3.649433135986328,
          -3.6454200744628906, -3.644195556640625, -3.64337158203125, -3.641460418701172, -3.6423377990722656,
          -3.638286590576172, -3.6386947631835938, -3.6328277587890625, -3.6310882568359375, -3.6269760131835938,
          -3.6236000061035156, -3.621997833251953, -3.6194992065429688, -3.6204566955566406, -3.619518280029297,
          -3.622364044189453, -3.622425079345703, -3.6255111694335938, -3.6267776489257812, -3.6271896362304688,
          -3.628875732421875, -3.627288818359375, -3.6300086975097656, -3.6299667358398438, -3.633800506591797,
          -3.635723114013672, -3.6395225524902344, -3.6438674926757812, -3.6472396850585938, -3.653034210205078,
          -3.6529922485351562, -3.6585845947265625, -3.656299591064453, -3.6597518920898438, -3.658008575439453,
          -3.6600685119628906, -3.660614013671875, -3.662677764892578, -3.666278839111328, -3.6682472229003906,
          -3.6731338500976562, -3.6757583618164062, -3.6808700561523438, -3.6817665100097656, -3.6829872131347656,
          -3.6833419799804688, -3.6832008361816406, -3.68585205078125, -3.685047149658203, -3.6893959045410156,
          -3.6902198791503906, -3.6952247619628906, -3.69891357421875, -3.701244354248047, -3.704204559326172,
          -3.704700469970703, -3.7055816650390625, -3.7037277221679688, -3.7029647827148438, -3.701160430908203,
          -3.7009429931640625, -3.7008285522460938, -3.7005081176757812, -3.7012405395507812, -3.6999053955078125,
          -3.6997451782226562, -3.695770263671875, -3.6923751831054688, -3.6884689331054688, -3.683258056640625,
          -3.6802101135253906, -3.674652099609375, -3.67333984375, -3.6703834533691406, -3.671222686767578,
          -3.671306610107422, -3.671764373779297, -3.6740341186523438, -3.6732406616210938, -3.6755905151367188,
          -3.6736106872558594, -3.6766014099121094, -3.6766128540039062, -3.6789016723632812, -3.6815834045410156,
          -3.6841506958007812, -3.689342498779297, -3.6923751831054688, -3.6978378295898438, -3.7005691528320312,
          -3.704540252685547, -3.7069358825683594, -3.7087860107421875, -3.7106971740722656, -3.712371826171875,
          -3.7170867919921875, -3.7182083129882812, -3.722797393798828, -3.725696563720703, -3.7305030822753906,
          -3.7339401245117188, -3.7366104125976562, -3.7398529052734375, -3.7404327392578125, -3.7442855834960938,
          -3.7436447143554688, -3.7465057373046875, -3.747516632080078, -3.750335693359375, -3.7534942626953125,
          -3.7555503845214844, -3.7594642639160156, -3.7588462829589844, -3.7629661560058594, -3.7604103088378906,
          -3.761516571044922, -3.761577606201172, -3.75830078125, -3.760753631591797, -3.756336212158203,
          -3.7578697204589844, -3.753894805908203, -3.7518043518066406, -3.749652862548828, -3.744415283203125,
          -3.741222381591797, -3.734272003173828, -3.7299880981445312, -3.722614288330078, -3.7171363830566406,
          -3.7112464904785156, -3.7044525146484375, -3.6996994018554688, -3.6939849853515625, -3.6893882751464844,
          -3.683666229248047, -3.6802444458007812, -3.6743927001953125, -3.670848846435547, -3.6660614013671875,
          -3.6616668701171875, -3.659618377685547, -3.6538848876953125, -3.653034210205078, -3.648151397705078,
          -3.6456260681152344, -3.64447021484375, -3.6390914916992188, -3.6387786865234375, -3.6335792541503906,
          -3.6319580078125, -3.6279144287109375, -3.6247329711914062, -3.6225509643554688, -3.6194534301757812,
          -3.618000030517578, -3.613269805908203, -3.6129188537597656, -3.6086463928222656, -3.6069412231445312,
          -3.6047897338867188, -3.6011962890625, -3.6017074584960938, -3.5976638793945312, -3.5973281860351562,
          -3.594928741455078, -3.5931625366210938, -3.591796875, -3.5884933471679688, -3.5882492065429688,
          -3.583953857421875, -3.582988739013672, -3.579540252685547, -3.578479766845703, -3.5752792358398438,
          -3.5716705322265625, -3.569854736328125, -3.5645675659179688, -3.5629119873046875, -3.5575599670410156,
          -3.5539512634277344, -3.5500221252441406, -3.544464111328125, -3.5406761169433594, -3.535289764404297,
          -3.5330543518066406, -3.5268020629882812, -3.523487091064453, -3.5194129943847656, -3.5134811401367188,
          -3.511829376220703, -3.5050735473632812, -3.502838134765625, -3.4981040954589844, -3.4945297241210938,
          -3.490978240966797, -3.488323211669922, -3.4868125915527344, -3.482410430908203, -3.482067108154297,
          -3.478240966796875, -3.476512908935547, -3.4748687744140625, -3.4711761474609375, -3.4717941284179688,
          -3.4687843322753906, -3.4681358337402344, -3.4659576416015625, -3.4651832580566406, -3.4631195068359375,
          -3.4607009887695312, -3.4606246948242188, -3.456829071044922, -3.456226348876953, -3.4533309936523438,
          -3.4517059326171875, -3.44970703125, -3.4478416442871094, -3.4472694396972656, -3.4437637329101562,
          -3.4439048767089844, -3.440959930419922, -3.4386520385742188, -3.4373703002929688, -3.433746337890625,
          -3.43243408203125, -3.4294586181640625, -3.4283370971679688, -3.424468994140625, -3.4226837158203125,
          -3.4209861755371094, -3.4158592224121094, -3.4159088134765625, -3.412017822265625, -3.409709930419922,
          -3.4070816040039062, -3.404132843017578, -3.4022293090820312, -3.398693084716797, -3.399219512939453,
          -3.395984649658203, -3.394390106201172, -3.3921661376953125, -3.3897247314453125, -3.388072967529297,
          -3.3841552734375, -3.3841400146484375, -3.3816909790039062, -3.3788375854492188, -3.3768959045410156,
          -3.374187469482422, -3.3740692138671875, -3.3708648681640625, -3.3706283569335938, -3.369396209716797,
          -3.3680458068847656, -3.3682899475097656, -3.368091583251953, -3.3700790405273438, -3.3690032958984375,
          -3.3708419799804688, -3.3724594116210938, -3.3735198974609375, -3.3760299682617188, -3.3776779174804688,
          -3.3809547424316406, -3.3825454711914062, -3.3861732482910156, -3.3904991149902344, -3.391937255859375,
          -3.3968048095703125, -3.399444580078125, -3.404346466064453, -3.406810760498047, -3.4107322692871094,
          -3.415576934814453, -3.417724609375, -3.4220237731933594, -3.4237098693847656, -3.427845001220703,
          -3.429779052734375, -3.431468963623047, -3.434356689453125, -3.434844970703125, -3.4376144409179688,
          -3.438098907470703, -3.4403152465820312, -3.4409408569335938, -3.440715789794922, -3.4426918029785156,
          -3.4426841735839844, -3.4436874389648438, -3.4430160522460938, -3.443645477294922, -3.4446258544921875,
          -3.443347930908203, -3.444427490234375, -3.444080352783203, -3.443878173828125, -3.4443626403808594,
          -3.4441375732421875, -3.4456100463867188, -3.444133758544922, -3.4443626403808594, -3.444103240966797,
          -3.443939208984375, -3.443328857421875, -3.441070556640625, -3.4410057067871094, -3.4385223388671875,
          -3.438213348388672, -3.4351272583007812, -3.432994842529297, -3.4326934814453125, -3.4298019409179688,
          -3.427959442138672, -3.4242286682128906, -3.423290252685547, -3.4229393005371094, -3.4196205139160156,
          -3.4188003540039062, -3.4163169860839844, -3.4175071716308594, -3.4173622131347656, -3.416332244873047,
          -3.4175148010253906, -3.4179344177246094, -3.4197235107421875, -3.419940948486328, -3.421863555908203,
          -3.424549102783203, -3.4261550903320312, -3.4286575317382812, -3.4287948608398438, -3.431690216064453,
          -3.4328041076660156, -3.4328880310058594, -3.433696746826172, -3.4332351684570312, -3.4351119995117188,
          -3.43463134765625, -3.4346923828125, -3.4346771240234375, -3.4329795837402344, -3.4341392517089844,
          -3.432270050048828, -3.432220458984375, -3.43084716796875, -3.4292945861816406, -3.429370880126953,
          -3.426959991455078, -3.42626953125, -3.423534393310547, -3.4229660034179688, -3.421142578125,
          -3.4178810119628906, -3.417339324951172, -3.4139366149902344, -3.4122581481933594, -3.4087905883789062,
          -3.405284881591797, -3.4027252197265625, -3.3986740112304688, -3.3968658447265625, -3.3929443359375,
          -3.3889503479003906, -3.385112762451172, -3.3817672729492188, -3.3791580200195312, -3.374225616455078,
          -3.3704605102539062, -3.3654098510742188, -3.3605270385742188, -3.3573036193847656, -3.3514251708984375,
          -3.347309112548828, -3.3419151306152344, -3.337512969970703, -3.3343849182128906, -3.329418182373047,
          -3.32611083984375, -3.321674346923828, -3.3184051513671875, -3.315296173095703, -3.312042236328125,
          -3.3102455139160156, -3.3053207397460938, -3.304462432861328, -3.302471160888672, -3.3005599975585938,
          -3.299510955810547, -3.2961883544921875, -3.294971466064453, -3.2935829162597656, -3.291656494140625,
          -3.2907371520996094, -3.2870254516601562, -3.2860679626464844, -3.2834243774414062, -3.282806396484375,
          -3.2809677124023438, -3.2780494689941406, -3.2767066955566406, -3.2733421325683594, -3.2728347778320312,
          -3.2706222534179688, -3.2687149047851562, -3.2664031982421875, -3.2624130249023438, -3.2605133056640625,
          -3.2581443786621094, -3.25616455078125, -3.2538108825683594, -3.2503662109375, -3.248188018798828,
          -3.2441062927246094, -3.2423477172851562, -3.239532470703125, -3.236377716064453, -3.2340469360351562,
          -3.228961944580078, -3.2263641357421875, -3.2229347229003906, -3.2197303771972656, -3.218402862548828,
          -3.2150840759277344, -3.2135467529296875, -3.2105140686035156, -3.2077407836914062, -3.2066192626953125,
          -3.2038917541503906, -3.203960418701172, -3.202281951904297, -3.2003822326660156, -3.199054718017578,
          -3.1963462829589844, -3.1955337524414062, -3.1941070556640625, -3.1936569213867188, -3.1930999755859375,
          -3.191478729248047, -3.1915016174316406, -3.1893577575683594, -3.1882171630859375, -3.187725067138672,
          -3.1863136291503906, -3.1868057250976562, -3.185375213623047, -3.186370849609375, -3.185546875,
          -3.185821533203125, -3.1875228881835938, -3.1878814697265625, -3.1901473999023438, -3.1909408569335938,
          -3.1934852600097656, -3.1964263916015625, -3.1975746154785156, -3.2016029357910156, -3.2039833068847656,
          -3.2086563110351562, -3.2124900817871094, -3.2156333923339844, -3.2200851440429688, -3.222942352294922,
          -3.226062774658203, -3.229766845703125, -3.2316513061523438, -3.2368545532226562, -3.239238739013672,
          -3.2426986694335938, -3.2451629638671875, -3.2472152709960938, -3.2500228881835938, -3.250934600830078,
          -3.253253936767578, -3.2547645568847656, -3.256031036376953, -3.2588653564453125, -3.2583274841308594,
          -3.2604026794433594, -3.2607345581054688, -3.2610855102539062, -3.2628440856933594, -3.2625160217285156,
          -3.2648162841796875, -3.265838623046875, -3.2671356201171875, -3.2690811157226562, -3.268688201904297,
          -3.271015167236328, -3.271076202392578, -3.2722434997558594, -3.2741928100585938, -3.2751312255859375,
          -3.276500701904297, -3.2780838012695312, -3.2794952392578125, -3.2813339233398438, -3.281768798828125,
          -3.2837600708007812, -3.283313751220703, -3.2843284606933594, -3.285308837890625, -3.2849044799804688,
          -3.286693572998047, -3.2865447998046875, -3.288555145263672, -3.2899246215820312, -3.2905426025390625,
          -3.291839599609375, -3.2915306091308594, -3.293384552001953, -3.2945289611816406, -3.2957115173339844,
          -3.2980918884277344, -3.2993507385253906, -3.3023147583007812, -3.303936004638672, -3.3058547973632812,
          -3.3087387084960938, -3.3105735778808594, -3.3134117126464844, -3.3152847290039062, -3.316722869873047,
          -3.318897247314453, -3.3196678161621094, -3.321807861328125, -3.3223419189453125, -3.323223114013672,
          -3.324932098388672, -3.325702667236328, -3.3274383544921875, -3.3277320861816406, -3.3277244567871094,
          -3.328632354736328, -3.3285179138183594, -3.329174041748047, -3.3281402587890625, -3.3283615112304688,
          -3.3286705017089844, -3.327198028564453, -3.327831268310547, -3.3267364501953125, -3.3255958557128906,
          -3.3246688842773438, -3.3224029541015625, -3.3211898803710938, -3.3179893493652344, -3.3165435791015625,
          -3.314830780029297, -3.3107833862304688, -3.3093185424804688, -3.3057289123535156, -3.302936553955078,
          -3.2994956970214844, -3.2955360412597656, -3.2925758361816406, -3.2889747619628906, -3.285572052001953,
          -3.2824249267578125, -3.2774429321289062, -3.274768829345703, -3.2698097229003906, -3.2661590576171875,
          -3.262378692626953, -3.2574081420898438, -3.2551116943359375, -3.2506370544433594, -3.246673583984375,
          -3.244171142578125, -3.239940643310547, -3.2367210388183594, -3.232898712158203, -3.2294044494628906,
          -3.2270240783691406, -3.223285675048828, -3.2213401794433594, -3.2182846069335938, -3.215381622314453,
          -3.213909149169922, -3.2108535766601562, -3.2097511291503906, -3.208049774169922, -3.2065353393554688,
          -3.2054977416992188, -3.203136444091797, -3.20281982421875, -3.2008438110351562, -3.1994056701660156,
          -3.198955535888672, -3.1980361938476562, -3.197662353515625, -3.196758270263672, -3.1959228515625,
          -3.1955833435058594, -3.193572998046875, -3.1933250427246094, -3.1914939880371094, -3.1905517578125,
          -3.189739227294922, -3.1872787475585938, -3.186779022216797, -3.184886932373047, -3.183063507080078,
          -3.1820068359375, -3.179065704345703, -3.178638458251953, -3.1763839721679688, -3.1745681762695312,
          -3.1736488342285156, -3.170696258544922, -3.169055938720703, -3.1675071716308594, -3.1644210815429688,
          -3.164173126220703, -3.1609039306640625, -3.1592025756835938, -3.1572532653808594, -3.1548423767089844,
          -3.154376983642578, -3.151958465576172, -3.1509056091308594, -3.1498146057128906, -3.148082733154297,
          -3.1479949951171875, -3.1461257934570312, -3.145915985107422, -3.1463623046875, -3.145038604736328,
          -3.145172119140625, -3.1449966430664062, -3.145599365234375, -3.145671844482422, -3.144176483154297,
          -3.14404296875, -3.1434860229492188, -3.1432723999023438, -3.1436805725097656, -3.1428298950195312,
          -3.1438064575195312, -3.1435623168945312, -3.1442413330078125, -3.1456336975097656, -3.1460494995117188,
          -3.1483154296875, -3.149616241455078, -3.15081787109375, -3.1539764404296875, -3.1555404663085938,
          -3.1593360900878906, -3.163013458251953, -3.1668548583984375, -3.1724929809570312, -3.1762313842773438,
          -3.1810874938964844, -3.185741424560547, -3.18994140625, -3.1958274841308594, -3.1998062133789062,
          -3.204376220703125, -3.2085227966308594, -3.2128524780273438, -3.2180213928222656, -3.2218055725097656,
          -3.2259292602539062, -3.2302589416503906, -3.232646942138672, -3.2374534606933594, -3.2401275634765625,
          -3.243328094482422, -3.246776580810547, -3.24884033203125, -3.252002716064453, -3.25408935546875,
          -3.2562026977539062, -3.2599411010742188, -3.261577606201172, -3.2643394470214844, -3.2663955688476562,
          -3.2684669494628906, -3.2712249755859375, -3.272106170654297, -3.2748146057128906, -3.2773170471191406,
          -3.2792587280273438, -3.2826499938964844, -3.283954620361328, -3.286426544189453, -3.2890777587890625,
          -3.2903060913085938, -3.2934036254882812, -3.2945327758789062, -3.296306610107422, -3.298583984375,
          -3.2988739013671875, -3.3004379272460938, -3.300792694091797, -3.3020973205566406, -3.3039894104003906,
          -3.303913116455078, -3.3050079345703125, -3.3047866821289062, -3.3055152893066406, -3.3069992065429688,
          -3.3063697814941406, -3.308116912841797, -3.3092994689941406, -3.3098220825195312, -3.3120803833007812,
          -3.312519073486328, -3.3144187927246094, -3.3155555725097656, -3.315521240234375, -3.317371368408203,
          -3.3177719116210938, -3.319232940673828, -3.32061767578125, -3.320526123046875, -3.32183837890625,
          -3.3208999633789062, -3.3212661743164062, -3.3227500915527344, -3.321514129638672, -3.3221511840820312,
          -3.321788787841797, -3.3208999633789062, -3.3209686279296875, -3.3184814453125, -3.3179550170898438,
          -3.3162918090820312, -3.3143272399902344, -3.3131942749023438, -3.3107833862304688, -3.308422088623047,
          -3.3069801330566406, -3.3038101196289062, -3.3027610778808594, -3.299560546875, -3.2970123291015625,
          -3.2944068908691406, -3.28955078125, -3.2858734130859375, -3.2825241088867188, -3.276721954345703,
          -3.273517608642578, -3.2676925659179688, -3.2635421752929688, -3.2583389282226562, -3.252704620361328,
          -3.2485580444335938, -3.2424468994140625, -3.2362899780273438, -3.230571746826172, -3.223663330078125,
          -3.2182846069335938, -3.2122650146484375, -3.2062339782714844, -3.2009735107421875, -3.194377899169922,
          -3.1900596618652344, -3.1841964721679688, -3.17877197265625, -3.174938201904297, -3.1685256958007812,
          -3.1644630432128906, -3.1597366333007812, -3.15411376953125, -3.150371551513672, -3.1446914672851562,
          -3.14093017578125, -3.1374359130859375, -3.1321678161621094, -3.1299781799316406, -3.125957489013672,
          -3.1212120056152344, -3.1167564392089844, -3.1138648986816406, -3.112010955810547, -3.1152496337890625,
          -3.1064453125, -3.1056175231933594, -3.102794647216797, -3.1020889282226562, -3.1018295288085938,
          -3.100109100341797, -3.1006622314453125, -3.1003952026367188, -3.1004409790039062, -3.101287841796875,
          -3.1000938415527344, -3.1011314392089844, -3.1021156311035156, -3.1026687622070312, -3.1048736572265625,
          -3.1044921875, -3.1063194274902344, -3.108184814453125, -3.10711669921875, -3.1250076293945312,
          -3.1104812622070312, -3.1115570068359375, -3.112255096435547, -3.113147735595703, -3.114887237548828,
          -3.1159515380859375, -3.116546630859375, -3.118732452392578, -3.118793487548828, -3.1209449768066406,
          -3.1219711303710938, -3.122020721435547, -3.124095916748047, -3.120330810546875, -3.1246376037597656,
          -3.1258392333984375, -3.1257476806640625, -3.127124786376953, -3.128093719482422, -3.1283950805664062,
          -3.129779815673828, -3.1293563842773438, -3.1310462951660156, -3.1330184936523438, -3.1328964233398438,
          -3.1360511779785156, -3.13812255859375, -3.136524200439453, -3.1388397216796875, -3.138751983642578,
          -3.1406402587890625, -3.141559600830078, -3.1472740173339844, -3.1433334350585938, -3.1425704956054688,
          -3.143817901611328, -3.1464500427246094, -3.14471435546875, -3.150115966796875, -3.146831512451172,
          -3.147258758544922, -3.148937225341797, -3.184856414794922, -3.1522674560546875, -3.1526336669921875,
          -3.1655540466308594, -3.1549949645996094, -3.1556243896484375, -3.1568832397460938, -3.15997314453125,
          -3.1609115600585938, -3.1651573181152344, -3.1676101684570312, -3.1793365478515625, -3.16949462890625,
          -3.1740760803222656, -3.1775054931640625, -3.1807861328125, -3.184703826904297, -3.1865577697753906,
          -3.1890907287597656, -3.1921005249023438, -3.1951560974121094, -3.196483612060547, -3.200237274169922,
          -3.203136444091797, -3.2116928100585938, -3.2075119018554688, -3.2069778442382812, -3.2098236083984375,
          -3.2105178833007812, -3.2118072509765625, -3.2138099670410156, -3.2164268493652344, -3.216663360595703,
          -3.218097686767578, -3.2168540954589844, -3.218547821044922, -3.2197723388671875, -3.245403289794922,
          -3.219806671142578, -3.218883514404297, -3.218585968017578, -3.229511260986328, -3.217914581298828,
          -3.2190818786621094, -3.218414306640625, -3.218555450439453, -3.217754364013672, -3.2162742614746094,
          -3.212444305419922, -3.2138290405273438, -3.2051124572753906, -3.2093429565429688, -3.2066726684570312,
          -3.2056846618652344, -3.2046356201171875, -3.2012596130371094, -3.1996307373046875, -3.1980056762695312,
          -3.1951065063476562, -3.1933670043945312, -3.1894187927246094, -3.2041397094726562, -3.183246612548828,
          -3.1797828674316406, -3.172466278076172, -3.1740341186523438, -3.1687278747558594, -3.170146942138672,
          -3.1667823791503906, -3.167072296142578, -3.1565818786621094, -3.1568031311035156, -3.1576576232910156,
          -3.1621551513671875, -3.1499557495117188, -3.1492233276367188, -3.1536407470703125, -3.1752243041992188,
          -3.1356964111328125, -3.137195587158203, -3.141590118408203, -3.1441307067871094, -3.1314163208007812,
          -3.1301116943359375, -3.1264991760253906, -3.1260223388671875, -3.124103546142578, -3.1211624145507812,
          -3.1213607788085938, -3.116729736328125, -3.1141815185546875, -3.1140060424804688, -3.1099777221679688,
          -3.1096878051757812, -3.1068687438964844, -3.0985374450683594, -3.103565216064453, -3.099590301513672,
          -3.099536895751953, -3.1245460510253906, -3.0881805419921875, -3.1019439697265625, -3.0894775390625,
          -3.0953407287597656, -3.0939979553222656, -3.016002655029297, -3.0195846557617188, -3.12567138671875,
          -3.1098175048828125, -3.1070175170898438, -3.0839004516601562, -3.076221466064453, -3.0777816772460938,
          -3.0767784118652344, -3.0777015686035156, -3.0815773010253906, -3.0768508911132812, -3.078083038330078,
          -3.077342987060547, -3.077686309814453, -3.080516815185547, -3.0812606811523438, -3.0955123901367188,
          -3.08306884765625, -3.0829010009765625, -3.085540771484375, -3.0873031616210938, -3.0887298583984375,
          -3.0950393676757812, -3.0874252319335938, -3.095172882080078, -3.1039505004882812, -3.099353790283203,
          -3.1049957275390625, -3.1054954528808594, -3.1061973571777344, -3.111377716064453, -3.1128616333007812,
          -3.1221466064453125, -3.1060256958007812, -3.1333694458007812, -3.1321754455566406, -3.1090621948242188,
          -3.1398849487304688, -3.1507301330566406, -3.153308868408203, -3.1591339111328125, -3.1666908264160156,
          -3.1696243286132812, -3.180286407470703, -3.1862411499023438, -3.1934165954589844, -3.2082290649414062,
          -3.2029647827148438, -3.2136383056640625, -3.2241172790527344, -3.231212615966797, -3.2435951232910156,
          -3.248382568359375, -3.253314971923828, -3.26416015625, -3.271442413330078, -3.2923851013183594,
          -3.3161888122558594, -3.3037071228027344, -3.3057708740234375, -3.2802963256835938, -3.3175811767578125,
          -3.339160919189453, -3.343059539794922, -3.379444122314453, -3.346538543701172, -3.3498992919921875,
          -3.415912628173828, -3.3797988891601562, -3.292652130126953, -3.407054901123047, -3.403240203857422,
          -3.409648895263672, -3.4234466552734375, -3.4276046752929688, -3.4368247985839844, -3.4524459838867188,
          -3.4534339904785156, -3.4649505615234375, -3.47100830078125, -3.4765167236328125, -3.5007781982421875,
          -3.491851806640625, -3.5015182495117188, -3.5119361877441406, -3.5149803161621094, -3.5245018005371094,
          -3.52728271484375, -3.5360755920410156, -3.548320770263672, -3.553253173828125, -3.569751739501953,
          -3.5691146850585938, -3.572376251220703, -3.5822486877441406, -3.589954376220703, -3.600444793701172,
          -3.6072921752929688, -3.6103477478027344, -3.6168251037597656, -3.625957489013672, -3.6317787170410156,
          -3.6421737670898438, -3.6494064331054688, -3.6539688110351562, -3.6659469604492188, -3.6830825805664062,
          -3.6763381958007812, -3.688640594482422, -3.691211700439453, -3.7002525329589844, -3.7086715698242188,
          -3.7131500244140625, -3.723949432373047, -3.7311477661132812, -3.736804962158203, -3.753498077392578,
          -3.749889373779297]
# print("y_data", y_data)
save_data_2_ini(str(x_data), str(y_data))
# plot_curve(x_data, y_data)
# def set_81641(power_value=0, band_value=1310):
#     """
#     :param power_value:
#     :param band_value:
#     :return:
#     """
#     n8164_inst.write("*cls")
#     # n8164_inst.write(f"sour0:wav {band_value}NM")
#     n8164_inst.write(f"sour0:pow:unit 0")  # 修改power unit为db
#     n8164_inst.write(f"sour0:pow {power_value} dbm")
#
#
# def set_8164():
#     # n8164_inst.write("*cls")
#     set_sweep_mode()
#     query_sweep_pmax()
#     set_repeat_mode()
#     set_wave_sweep_speed()
#     set_start_stop_step_wave()
#     trigger_config()
#     wave_sweep_state()
#
#     set_trigger_response()
#     output_on()
#
#
# def set_trigger_response(trigger_response="SWS"):
#     """
#     Sets the incoming trigger response and arms the module.
#     IGNore:Ignore incoming trigger.
#     SMEasure:Start a single measurement. If a measurement function is active, see
#             :SENSe[n][:CHANnel[m]]:FUNCtion:STATe on page 104, one sample is performed and
#             the result is stored in the data array, see :SENSe[n][:CHANnel[m]]:FUNCtion:RESult?
#             on page 100.
#     CMEasure:Start a complete measurement. If a measurement function is active,
#             see:SENSe[n][:CHANnel[m]]:FUNCtion:STATe on page 104, a complete measurement
#             function is performed.
#     NEXTstep:Perform next step of a stepped sweep.
#     SWStart:Start a sweep cycle.
#     :param trigger_response:
#     :return:
#     """
#     n8164_inst.write(f":TRIGger0:INPut {trigger_response}")
#
#
# def output_on():
#     state = int(n8164_inst.query(f"OUTPUT:CHANNEL:STATE?"))  # on off
#     if not state:
#         n8164_inst.write("OUTPUT:STATE 1")
#
#
# def trigger_config(config=2):
#     """
#     Sets the hardware trigger configuration with regard to Output and Input Trigger Connectors.
#     :param config: 0 or DISabled/1 or DEFault/2 or PASSthrough/3 or LOOPback
#     :return:
#     """
#     n8164_inst.write(f":SOURce0:trig:conf {config}")
#
#
# def set_start_stop_step_wave(start_wave=start_wave, stop_wave=stop_wave, step_wave=step_wave):
#     """设置开始、结束波长和波长的步进
#     :param start_wave:开始波长
#     :param stop_wave:结束波长
#     :param step_wave:波长步进
#     """
#     n8164_inst.write(f":SOURce0:WAVelength:SWEep:STARt {start_wave}NM")
#     n8164_inst.write(f":SOURce0:WAVelength:SWEep:STOP {stop_wave}NM")
#     n8164_inst.write(f":SOURce0:WAVelength:SWEep:STEP {step_wave}NM")
#
#
# def set_wave_sweep_speed(speed: float = 100):
#     """
#     设置波长扫描速度 Speed as a float value in meters per second (m/s). wav:swe:spe 10nm/s
#     :param speed:
#     :return:
#     """
#     n8164_inst.write(f":SOURce0:wav:swe:spe {speed}nm/s")
#
#
# def set_repeat_mode(repeat_mode="ONEW"):
#     """
#     设置重复模式
#     :param repeat_mode:ONEWay/TWOWay
#     :return:
#     """
#     n8164_inst.write(f":SOURce0:wav:swe:rep {repeat_mode}")
#
#
# def set_sweep_mode(sweep_mode="CONT"):
#     """
#     Sets the sweep mode.
#     :param sweep_mode: STEPped/MANual/CONTinuous
#     :return:
#     """
#     n8164_inst.write(f":SOURce0:WAVelength:SWEep:MODE {sweep_mode}")
#
#
# def query_sweep_pmax(start_wave: float = start_wave, stop_wave: float = stop_wave):
#     """
#     Returns the power to the highest permissible power for the selected wavelength sweep
#     :param start_wavelength:
#     :param stop_wavelength:
#     :return:
#     """
#     return n8164_inst.query(f":SOURce0:WAVelength:SWEep:PMAX? {start_wave},{stop_wave}")
#
#
# def wave_sweep_state(state=1):
#     """
#     :param state: STOP|0|STARt|1|PAUSe|2|CONTinue|3
#     :return:
#     """
#     # 开始扫描触发和终止扫描触发
#     n8164_inst.write(f"wav:swe {state}")
#     # n8164_inst.write(f":SOURce0:WAVelength:SWEep:STATe {state}")
#
#
# def trigger_output(tag="STF"):
#     # 触发输出，每个波长输出一个触发信号：
#     """
#     Specifies when an output trigger is generated and arms the module.
#     DISabled:
#     AVGover:
#     MEASure:
#     MODulation:
#     STFinished:
#     SWFinished:
#     SWSTarted:
#     Never.
#     :return:
#     """
#     n8164_inst.write(f"TRIGger:OUTPut {tag}")
#
#
# def set_passthrough():
#     n7786_inst.write("TRIG:CONF 2")
#
#
# def n7744c_a11():
#     n7744_inst.write("SENS1:FUNC:STAT LOGG,STAR")
#     print("n7744c_a11", n7744_inst.query("SENS1:FUNC:STAT?"))
#
#
# def n7744_after_a12():
#     n7744_inst.write(":TRIG 2")
#     while True:
#         state = n7744_inst.query("SENS1:FUNC:STAT?").strip()
#         # print("state",state)
#         if state == "LOGGING_STABILITY,COMPLETE":
#             # n7744_inst.write("SENS1:FUNC:RES?")
#             # result = n7744_inst.read_raw()
#             result = n7744_inst.query_binary_values("SENS1:FUNC:RES?")
#             return result
#
#
# def other():
#     n7786_inst.write(":PCONtroller:STOP")
#     n7786_inst.query("*OPC?")
#     n7786_inst.write("PCON:SEQ:LENG 101")
#     n7786_inst.write("PCON:STAR")
#     print(n7786_inst.query("*OPC?"))
#     n7786_inst.write("TRIG 1")
#
#
# def n7744_init():
#     n7744_inst.query("SYST:PRES;*OPC?")
#     # n7744_inst.write("SENS1:POW:RANG:AUTO 0")
#     n7744_inst.write("SENS1:POW:RANG 0DBM")
#     n7744_inst.write("SENS1:POW:GAIN:AUTO 0")
#     n7744_inst.write("TRIG1:INP SME")
#     n7744_inst.write(":sens1:pow:unit 0")
#     n7744_inst.write("SENS1:POW:WAV 1310nm")
#     n7744_inst.write(f"SENS1:FUNC:PAR:LOGG {points},100US")
#
#
# # def n7786c_a8(points=points, freqence=1, wave_length=1550):
# #     n7786_inst.write("POL:TRIG:INP SME")
# #     n7786_inst.write(f"POL:SWE:SAMP {points}")
# #     n7786_inst.write(f"POL:SWE:SRAT {freqence}KHZ,100US")
# #     n7786_inst.write("POL:SWE:LOOP 0")
# #     print("loop", n7786_inst.query(":pol:swe:loop?"))
# #
# #     n7786_inst.write("POL:GAIN 4")
# #     # n7786_inst.write(":POLarimeter:AGFLag 1")
# #     n7786_inst.write(f"POL:WAV {wave_length}NM")
# #     n7786_inst.write("POL:SWE:STEP 0")
# #     n7786_inst.write("POL:SWE:STAR")
#
#
# def n7786_a11():
#     # while True:
#     number = n7786_inst.query("POL:SWE:SAMP:CURR?").strip()
#     print("number", number, type(number))
#     # data_array = n7786_inst.query_binary_values("POL:SWE:GET? NORM", datatype="f", is_big_endian=True,
#     #                                             data_points=10)
#     # n7786_inst.write("POL:SWE:GET? NORM")
#     if number == "+0":
#         data_array = n7786_inst.query_binary_values("POL:SWE:GET? NORM")
#         # print("data_array", len(data_array))
#         return data_array
#
#
# def getn7786_sqenc():
#     data = n7786_inst.query(":PCONtroller:SEQuence?")
#     return data
#
#
# def n7786c_A20(max1, max2, max3):
#     n7786_inst.write("POL:STOP")
#     n7786_inst.write("PCON:STOP")
#     print("n7786c_A20", n7786_inst.query("*OPC?"))
#     n7786_inst.write("PCON:SEQ:HOLD 1")
#     n7786_inst.write("STAB:STAB 1")
#     n7786_inst.write(f"STAB:SOP {max1},{max2},{max3}")
#     # n7786_inst.write("STAB:STAB 0")
#
#
# def n7744c_b11():
#     power = n7744_inst.query("READ1:POW?")
#     return power
#
#
# def moving_average(interval, windowsize):
#     window = np.ones(int(windowsize)) / float(windowsize)
#     re = np.convolve(interval, window, "void")
#     return re
#
#
# def interpolate():
#     y_smooth = make_interp_spline(x_data, y_data)(x_data)
#     plt.plot(x_data, y_smooth, "b")
#     plt.xlabel("WaveLength")
#     plt.ylabel("Value")
#     plt.grid(True)
#     plt.show()
#
#
# # 平滑曲线
# def savgol():
#     plt.plot(x_data, y_data, "k")
#     y_smooth = savgol_filter(y_data, 201, 3, mode="nearest")
#     plt.plot(x_data, y_smooth, "b")
#     plt.xlabel("WaveLength")
#     plt.ylabel("Value")
#     plt.grid(True)
#     plt.show()
#
#
# def labber_ring():
#     plt.figure(figsize=(20, 8), dpi=80)
#     y_av = moving_average(y_data, 10)
#     print(len(y_av))
#     plt.plot(x_data1, y_av, "b")
#     plt.xlabel("WaveLength")
#     plt.ylabel("Value")
#     plt.grid(True)
#     plt.show()
#
#
# def plot_curve(data_list):
#     plt.figure(figsize=(20, 8), dpi=80)
#     fig, ax = plt.subplots()
#     ax.plot(data_list[0][0], data_list[0][1], "b", label="60")
#     ax.plot(data_list[1][0], data_list[1][1], "r", label="40")
#     ax.plot(data_list[2][0], data_list[2][1], "g", label="30")
#     ax.set_xlabel("WaveLength")
#     ax.set_ylabel("Value")
#     ax.grid(True)
#     ax.legend()
#     plt.show()
#
#
# def close_stab():
#     n7786_inst.write("PCON:STOP")
#     n7786_inst.write(":STAB:STAB 0")
#
#
# def plot_curve1(x_data, y_data):
#     plt.plot(x_data, y_data, "b")
#     plt.xlabel("WaveLength")
#     plt.ylabel("Value")
#     plt.grid(True)
#     plt.show()
#
#
# def stable_pol(max1, max2, max3):
#     n7786_inst.write("STAB:STAB 1")
#     n7786_inst.write(f"STAB:SOP {max1},{max2},{max3}")


# set_passthrough()
# 开启稳偏
# stable_pol(1, 0, 0)
# set_8164()
# n7744_init()
# n7744c_a11()
# curve_list = []
# y_data = n7744_after_a12()
# # 关闭7786的稳偏模式
# close_stab()
# plot_curve1(x_data, y_data)

# labber_ring()
# interpolate()
# savgol()
